bert alternatives and similar packages
Based on the "Data" category.
Alternatively, view bert alternatives based on common mentions on social networks and blogs.
-
streaming
An optimized general monad transformer for streaming applications, with a simple prelude of functions
SaaSHub - Software Alternatives and Reviews
Do you think we are missing an alternative of bert or a related project?
README
BERT[-RPC] for Haskell
Originally written by marius a. eriksen ([email protected])
This is a BERT serializer/deserializer and
BERT-RPC client and server for
Haskell. BERT-RPC currently supports
synchronous (call
) requests.
The primitives provided are fairly elementary: for the client, call
provides the capability to perform the RPC call, while the server's
serve
is provided with a dispatch function providing the dispatching
logic for the server. Thus, one can imagine building higher level
abstractions on top of these primitives.
Installation
It's a cabal package, so
$ cabal install bert
should do the trick.
BERT
import qualified Data.ByteString.Lazy.Char8 as C
import Data.BERT
Creating BERT terms is simple.
TupleTerm [BytelistTerm (C.pack "hello"), IntTerm 123]
Or by using the BERT
typeclass.
showBERT $ ("hello", 123)
The BERT
class can also read terms back.
Right ("hello", 123) = readBERT . showBERT $ ("hello", 123)
BERT-RPC client
import Data.BERT
import Network.BERT.Client
Create a transport to the server endpoint, and issue a (synchronous) call with it.
t <- tcpClient "localhost" 8080
r <- call t "calc" "add" ([123, 3000]::[Int])
case r of
Right res -> print (res :: Int)
Left _ -> putStrLn "error"
BERT-RPC server
import Data.BERT
import Network.BERT.Server
Create a transport from which to accept connections, and provide a dispatch function for incoming RPCs. The dispatch function is issued in a new thread for each incoming request.
main = do
s <- tcpServer 8080
serve s dispatch
dispatch "calc" "add" [IntTerm a, IntTerm b] =
return $ Success $ IntTerm (a + b)
dispatch "calc" _ _ =
return NoSuchFunction
dispatch _ _ _ =
return NoSuchModule
Maintainers
Roman Cheplyaka is the primary maintainer.
Oleksandr Manzyuk is the backup maintainer. Please get in touch with him if the primary maintainer cannot be reached.