/buffer-builder-aeson

Serialise Aeson JSON with Data.BufferBuilder

Primary LanguageHaskellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

buffer-builder-aeson

A very fast buffer-builder-based JSON encoder for Aeson.

The whole library is a single Data.BufferBuilder.Json.ToJson instance for Data.Aeson.Value.

Criterion benchmark

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE OverloadedLists #-}

import Data.Aeson (object, (.=), Value (..))
import Data.BufferBuilder.Json (encodeJson)
import Data.BufferBuilder.Aeson ()
import qualified Data.ByteString as BS

stuff :: Value
stuff = Array
    [ object
        [ "name" .= ("eggs" :: String)
        , "price" .= (3.141592 :: Double)
        ]
    , object
        [ "name" .= ("cheese" :: String)
        , "price" .= (0.57721 :: Double)
        ]
    ]

main :: IO ()
main = do
    BS.putStrLn $ encodeJson stuff