web3 alternatives and similar packages
Based on the "Networking" category.
Alternatively, view web3 alternatives based on common mentions on social networks and blogs.
-
snap-core
Core type definitions (Snap monad, HTTP types, etc) and utilities for web handlers. -
call-haskell-from-anything
Call Haskell functions from any programming language via serialization and dynamic libraries -
PortFusion
Haskell-powered cross-platform transport-layer distributed reverse / forward proxy & tunneling solution – currently available for all TCP protocols (RDP, VNC, HTTP(S), SSH, ...). -
network-transport-zeromq
ZeroMQ transport for distributed-process (aka Cloud Haskell) -
HaskellNet
Haskell library which provides client support for POP3, SMTP, and IMAP protocols. -
http-types
Generic HTTP types for Haskell (for both client and server code) -
ngx-export
Nginx module for binding Haskell code in configuration files for great good! -
graphula
A simple interface for generating persistent data and linking its dependencies -
secure-sockets
A library for making secure connections between servers. -
linklater
A Haskell library for the Slack API (including real-time messaging!) -
http-client-streams
http-client for io-streams supporting openssl
Clean code begins in your IDE with SonarLint
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of web3 or a related project?
Popular Comparisons
README
Web3 API for Haskell
This library implements Haskell API client for popular Web3 platforms.
Install
stack install web3
Usage
{-# LANGUAGE OverloadedStrings #-}
module Main where
-- Basic imports
import Network.Ethereum
import Network.Web3
-- Eth API support
import qualified Network.Ethereum.Api.Eth as Eth
import Network.Ethereum.Api.Types
-- ENS support
import qualified Network.Ethereum.Ens as Ens
-- Lens to simple param setting
import Lens.Micro ((.~))
main :: IO ()
main = do
-- Use default provider on http://localhost:8545
ret <- runWeb3 $ do
-- Get address of default account
me <- head <$> Eth.accounts
-- Get balance of default account on latest block
myBalance <- Eth.getBalance me Latest
-- Get half of balance
let halfBalance = fromWei (myBalance / 2)
-- Use default account
withAccount () $ do
-- Get Ethereum address via ENS
alice <- Ens.resolve "alice.address.on.eth"
bob <- Ens.resolve "bob.address.on.eth"
-- Send transaction with value
withParam (value .~ halfBalance) $ do
-- Send transaction to alice account
withParam (to .~ alice) $ send ()
-- Send transaction to bob account
withParam (to .~ bob) $ send ()
-- Return sended value
return halfBalance
-- Web3 error handling
case ret of
Left e -> error $ show e
Right v -> print (v :: Ether) -- Print returned value in ethers
Read more in the documentation on ReadTheDocs.
License
Network.Polkadot
andCodec.Scale
is licensed under Apache 2.0- All other source is licensed under BSD-3-Clause
*Note that all licence references and agreements mentioned in the web3 README section above
are relevant to that project's source code only.