ptr-peeker-0.1: ptr-peeker.cabal
cabal-version: 3.0
name: ptr-peeker
version: 0.1
synopsis: High-performance composable binary data deserializers
description:
A high-performance binary data deserialization library providing a type-safe, flexible and composable abstraction over manipulations on pointers.
The API consists of two complementary abstractions:
* 'Fixed' decoders for compile-time known, fixed-size data structures
* 'Variable' decoders for runtime-dependent, variable-size data structures
In combination they allow to build decoders of any complexity.
The library delivers superior performance compared to alternatives like "cereal" and "store", making it ideal for high-throughput applications, networking, and systems programming.
copyright: (c) 2021, Nikita Volkov
license: MIT
license-file: LICENSE
source-repository head
type: git
location: https://github.com/nikita-volkov/ptr-peeker
common base
default-language: Haskell2010
default-extensions:
ApplicativeDo
Arrows
BangPatterns
BlockArguments
ConstraintKinds
DataKinds
DefaultSignatures
DeriveDataTypeable
DeriveFoldable
DeriveFunctor
DeriveGeneric
DeriveTraversable
DerivingVia
EmptyDataDecls
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTs
GeneralizedNewtypeDeriving
ImportQualifiedPost
LambdaCase
LiberalTypeSynonyms
MagicHash
MultiParamTypeClasses
MultiWayIf
NoImplicitPrelude
NoMonomorphismRestriction
OverloadedStrings
ParallelListComp
PatternGuards
QuasiQuotes
RankNTypes
RecordWildCards
RoleAnnotations
ScopedTypeVariables
StandaloneDeriving
StrictData
TemplateHaskell
TupleSections
TypeApplications
TypeFamilies
TypeOperators
UnboxedTuples
common executable
import: base
ghc-options:
-O2
-threaded
-with-rtsopts=-N
-rtsopts
-funbox-strict-fields
common test
import: base
ghc-options:
-threaded
-with-rtsopts=-N
library
import: base
hs-source-dirs: src/library
exposed-modules: PtrPeeker
other-modules:
PtrPeeker.Fixed
PtrPeeker.Prelude
PtrPeeker.Variable
build-depends:
base >=4.14 && <5,
bytestring >=0.11 && <0.14,
ptr >=0.16.8.6 && <0.17,
text >=2 && <3,
vector >=0.13 && <0.14,
test-suite test
import: test
type: exitcode-stdio-1.0
hs-source-dirs: src/test
main-is: Main.hs
build-depends:
QuickCheck >=2.8.1 && <3,
cereal >=0.5.8 && <0.6,
ptr-peeker,
quickcheck-instances >=0.3.11 && <0.4,
rerebase <2,
tasty >=1.4.1 && <2,
tasty-hunit >=0.10.0.3 && <0.11,
tasty-quickcheck >=0.10.1.2 && <0.11,
benchmark bench
import: executable
type: exitcode-stdio-1.0
hs-source-dirs: src/bench
main-is: Main.hs
build-depends:
cereal >=0.5.8.3 && <0.6,
criterion >=1.6 && <1.7,
ptr-peeker,
rerebase >=1.16.1 && <2,
store >=0.7.18 && <0.8,
tasty-hunit >=0.10.0.3 && <0.11,