Skip to content

zouppen/haskell-curl-aeson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

curl-aeson library for Haskell

This is a library for communicating with JSON over HTTP connection. It supports rich set of HTTP connectivity features provided by curl library combined to the performance and elegance of aeson.

Author: Joel Lehtonen [email protected]

This library is at its best when communicating with simple, non-standardized JSON interfaces. If you are implementing JSON-RPC compliant client or server, take a look at another library.

Example

Let's simulate a ticker service by creating a file /tmp/ticker.json with the following content:

{"bid":3,"ask":3.14}

We then define our own data type and define a function which reads the payload from the service:

{-# LANGUAGE DeriveGeneric #-}
import GHC.Generics
import Data.Aeson
import Network.Curl.Aeson

data Ticker = Ticker { bid :: Double
                     , ask :: Double
                     } deriving (Generic, Show)

instance FromJSON Ticker

ticker :: IO Ticker
ticker = curlAesonGet "file:///tmp/ticker.json"

You may find more examples from package documentation.

Installation

On Ubuntu and Debian

Starting from Ubuntu 12.04 and Debian wheezy, all dependencies are found from repositories:

sudo apt-get install libghc-aeson-dev libghc-curl-dev cabal-install

Then just install this:

cabal install

Other

Install and configure Haskell Platform. Then, fetch all the requirements and install this library by running:

cabal update
cabal install

License

Following the convention of Haskell community, this library is licensed under the terms of BSD 3-clause license. Personally I prefer GPLv3, but this library is simple enough to be released with non-copyleft license.

The license text is included in LICENSE file.

Contact

I'm not an expert in doing software packages, so feel free to correct me by sending pull requests. Also, I would like to hear if you have found my library to be useful.

About

Haskell library for communicating with HTTP service using JSON

Resources

License

Stars

Watchers

Forks

Packages

No packages published