- 1 HaXR — the Haskell XML-RPC library
HaXR — the Haskell XML-RPC library
HaXR consists of two packages: haxr and haxr-th. The latter package contains the Template Haskell code used for automatically deriving XML-RPC struct representations for Haskell records.
Christopher Milton came up with the HaXR name, thanks!
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)]
Note: the argument to fun can be a function that takes any number of arguments.
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 :: String -> Int -> Int -> IO Int add url = remote url "examples.add" main = do let x = 4 y = 7 z <- add server x y putStrLn (show x ++ " + " ++ show y ++ " = " ++ show z)
Note: the function returned by remote can be a function that takes any number of arguments.
More example are available in the examples/ folder in the darcs repository.
Use the online copy of the API documentation.
$ darcs get http://code.haskell.org/haxr/
Reporting bugs, requesting features
To report bugs, request features, submit patches, or ask for help, email Gracjan Polak.
Some known problems are listed in the TODO file in the source distribution. If you need any of those fixed, let me know.
HaXR is distributed under a BSD-style license.
<div class="bar" />