borsh-0.2.0: borsh.cabal
cabal-version: 3.0
name: borsh
version: 0.2.0
synopsis: Implementation of BORSH serialisation
description:
This package provides type classes and combinators for
serialisation\/deserialisation to\/from [Borsh](https://borsh.io/) format.
Unlike [CBOR](http://cbor.io/), Borsh is a non self-describing serialisation
format. It is designed such that any object serialises to a canonical and
deterministic string of bytes.
The library supports incremental encoding and incremental decoding, and
supports the use of the @ST@ monad in the decoder for efficient decoding for
types such as arrays. However, the library has currently not been optimized
for speed, and there may well be low-hanging fruit to make it faster.
license: BSD-3-Clause
license-file: LICENSE
author: Edsko de Vries, Finley McIlwaine
maintainer: edsko@well-typed.com
category: Codec
build-type: Simple
extra-doc-files: CHANGELOG.md
bug-reports: https://github.com/well-typed/borsh/issues
tested-with:
GHC == 8.6.5
, GHC == 8.8.3
, GHC == 8.10.7
, GHC == 9.0.2
, GHC == 9.2.2
source-repository head
type: git
location: https://github.com/well-typed/borsh
common lang
ghc-options:
-Wall
-Wredundant-constraints
if impl(ghc >= 8.10)
ghc-options:
-Wunused-packages
build-depends:
base >= 4.12 && < 4.17
default-language:
Haskell2010
default-extensions:
BangPatterns
ConstraintKinds
DataKinds
DefaultSignatures
DeriveAnyClass
DeriveFunctor
DeriveGeneric
DeriveTraversable
DerivingStrategies
DerivingVia
FlexibleContexts
FlexibleInstances
GADTs
GeneralizedNewtypeDeriving
InstanceSigs
KindSignatures
LambdaCase
MultiParamTypeClasses
NumericUnderscores
RankNTypes
ScopedTypeVariables
StandaloneDeriving
TupleSections
TypeApplications
TypeFamilies
TypeOperators
UndecidableInstances
library
import:
lang
exposed-modules:
Codec.Borsh
Codec.Borsh.Incremental
Data.FixedSizeArray
other-modules:
Codec.Borsh.Class
Codec.Borsh.Decoding
Codec.Borsh.Encoding
Codec.Borsh.Incremental.Decoder
Codec.Borsh.Incremental.Located
Codec.Borsh.Incremental.Monad
Codec.Borsh.Internal.Util.BitwiseCast
Codec.Borsh.Internal.Util.ByteString
Codec.Borsh.Internal.Util.ByteSwap
Codec.Borsh.Internal.Util.SOP
hs-source-dirs:
src
build-depends:
, bytestring >= 0.10 && < 0.12
, containers >= 0.6 && < 0.7
, generics-sop >= 0.5 && < 0.6
, sop-core >= 0.5 && < 0.6
, text >= 1.2 && < 2.1
-- At least 0.13.0.0 necessary for re-exported PrimMonad and PrimState
, vector >= 0.13 && < 0.14
, wide-word >= 0.1 && < 0.2
test-suite test-borsh
import:
lang
type:
exitcode-stdio-1.0
hs-source-dirs:
test
main-is:
Main.hs
other-modules:
Test.Codec.Borsh.ExampleType.BTree
Test.Codec.Borsh.ExampleType.NTree
Test.Codec.Borsh.ExampleType.SimpleList
Test.Codec.Borsh.ExampleType.SimpleStructs
Test.Codec.Borsh.Roundtrip
Test.Codec.Borsh.Size
Test.Codec.Borsh.Util.Length
Test.Codec.Borsh.Util.Orphans
Test.Codec.Borsh.Util.QuickCheck
Test.Codec.Borsh.Util.RandomType
Test.Codec.Borsh.Util.SOP
build-depends:
, borsh
, bytestring
, containers
, generics-sop
, optics-core
, profunctors
, QuickCheck
, quickcheck-instances
, sop-core
, tasty
, tasty-quickcheck
, text
, wide-word