Announce: Haskell XML-RPC library
Announcement: Haskell XML-RPC library ---------------------------------------------------------------------- I have written a Haskell XML-RPC client and server library which is available from: http://www.dtek.chalmers.se/~d00bring/haskell-xml-rpc/ XML-RPC (http://www.xmlrpc.com/) is "remote procedure calling using HTTP as the transport and XML as the encoding. XML-RPC is designed to be as simple as possible, while allowing complex data structures to be transmitted, processed and returned." Library features: - Easy to use interface, see code examples below. - Lower-level interface for explicit conversion between XML-RPC and Haskell types, e.g. to support heterogeneous arrays and structs. - Support for XML-RPC introspection in both client and server. Remote method declarations can be generated by using introspection, see test/make-stubs.hs. - Support for HTTP authentication. Code examples: This is a simple CGI-based server with only one method that takes two integers and returns their sum:
import Network.XmlRpc.Server
add :: Int -> Int -> IO Int add x y = return (x + y)
main = cgiXmlRpcServer [("examples.add", fun add)]
This is a client that calls the method implemented by the server above and prints the result:
import Network.XmlRpc.Client
server = "http://localhost/~bjorn/cgi-bin/simple_server"
add :: Int -> Int -> IO Int add = remote server "examples.add"
main = do let x = 4 y = 7 z <- add x y putStrLn (show x ++ " + " ++ show y ++ " = " ++ show z)
Requirements: - GHC >= 6.01 or Hugs >= Nov2003 - HaXml >= 1.10 All comments, suggestions, bug reports and flames are welcome. Yours truly, Bjorn Bringert
participants (1)
-
Bjorn Bringert