hermes-json-0.8.0.0: hermes-json.cabal
cabal-version: 3.0
name: hermes-json
version: 0.8.0.0
category: Text, Web, JSON, FFI
synopsis: Fast JSON decoding via simdjson C++ bindings
description:
A JSON parsing library focused on speed that binds to the simdjson C++ library using
the Haskell FFI. Hermes offers some helpful functions for building fast JSON decoders
for your Haskell types.
homepage: https://github.com/velveteer/hermes
license: MIT
license-file: LICENSE
author: Josh Miller <joshua.ian.miller@pm.me>
maintainer: Josh Miller <joshua.ian.miller@pm.me>
extra-source-files:
simdjson/singleheader/simdjson.h
extra-doc-files:
CHANGELOG.md
, README.md
, simdjson/LICENSE
tested-with:
GHC == 9.10.3
, GHC == 9.12.3
, GHC == 9.14.1
source-repository head
type: git
location: git@github.com:velveteer/hermes.git
flag strict
description: Enable more GHC warnings plus @-Werror@, which turns warnings into errors.
default: False
manual: True
flag native_comp
description: Target native architecture for C++ compiler
default: False
manual: True
flag debug
description: Enable C++ debug support
default: False
manual: True
library
default-extensions:
OverloadedStrings
exposed-modules:
Data.Hermes
Data.Hermes.Decoder
Data.Hermes.Decoder.Path
Data.Hermes.Decoder.Time
Data.Hermes.Decoder.Value
Data.Hermes.SIMDJSON
Data.Hermes.SIMDJSON.Bindings
Data.Hermes.SIMDJSON.Types
Data.Hermes.SIMDJSON.Wrapper
other-modules:
Data.Hermes.Decoder.Internal
Data.Hermes.Decoder.Internal.Scientific
build-depends:
base >= 4.13 && < 4.23,
bytestring >= 0.10.12 && < 0.13,
containers >= 0.6.5 && < 0.9,
deepseq >= 1.4.4 && < 1.6,
dlist >= 0.8 && < 1.1,
integer-conversion >= 0.1 && < 0.2,
primitive >= 0.7.0 && < 0.10,
scientific >= 0.3.6 && < 0.4,
text >= 2.0 && < 2.2,
text-iso8601 >= 0.1 && < 0.2,
transformers >= 0.5.6 && < 0.7,
time >= 1.9.3 && < 1.16,
time-compat >= 1.9.5 && < 1.10,
vector >= 0.12.3.1 && < 0.14
default-language: Haskell2010
hs-source-dirs: src
cxx-sources:
simdjson/singleheader/simdjson.cpp
cbits/lib.cpp
include-dirs:
simdjson/singleheader
if flag(strict)
ghc-options:
-Wall
-Werror
-Wcompat
-Widentities
-Wincomplete-uni-patterns
-Wincomplete-record-updates
-Wmissing-export-lists
-Wno-implicit-prelude
-Wno-safe
-Wno-unsafe
-Wnoncanonical-monad-instances
-Wredundant-constraints
-Wpartial-fields
-Wmissed-specialisations
else
ghc-options: -Wall
if flag(native_comp)
if flag (debug)
cxx-options: -std=c++17 -march=native
else
cxx-options: -std=c++17 -DNDEBUG -march=native
else
if flag (debug)
cxx-options: -std=c++17
else
cxx-options: -std=c++17 -DNDEBUG
if impl(ghc >= 9.4)
build-depends: system-cxx-std-lib == 1.0
elif os(darwin) || os(freebsd)
extra-libraries: c++
else
extra-libraries:
stdc++
test-suite hermes-test
default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: tests
main-is: test.hs
ghc-options: -Wall
build-depends:
aeson >= 2.0.1 && < 2.3,
base,
bytestring,
containers >= 0.6.2 && < 0.9,
hermes-json,
scientific,
text,
hedgehog >= 1.0.5 && < 1.8,
tasty >= 1.4.2 && < 1.6,
tasty-hunit >= 0.10.0 && < 0.12,
tasty-hedgehog >= 1.1.0 && < 1.5,
time,
vector