packages feed

wireform-thrift-0.1.0.0: wireform-thrift.cabal

cabal-version: 3.0
name: wireform-thrift
version: 0.1.0.0
synopsis: Apache Thrift binary protocol, schema, and JSON mapping
description:
  Binary and Compact protocol codecs, dynamic values, IDL parsing and code
  generation, schema-driven Haskell derivation, and JSON mapping.
category: Data, Codec
license: BSD-3-Clause
license-file: LICENSE
author: Ian Duncan
maintainer: ian@iankduncan.com
copyright: 2026 Ian Duncan
build-type: Simple
extra-source-files:
  scripts/protocol_golden.py
  test/fixtures/protocol-encodings.tsv

common defaults
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns
    -Wpartial-fields
    -Wredundant-constraints
    -O2
  default-language: GHC2021
  default-extensions:
    StrictData
    DerivingStrategies
    DeriveGeneric
    DeriveAnyClass
    OverloadedStrings
    LambdaCase

library
  import: defaults
  hs-source-dirs: src
  exposed-modules:
    Thrift
    Thrift.Class
    Thrift.CodeGen
    Thrift.Decode
    Thrift.Derive
    Thrift.Encode
    Thrift.Encoding
    Thrift.JSON
    Thrift.Message
    Thrift.Parser
    Thrift.QQ
    Thrift.Registry
    Thrift.Schema
    Thrift.Transport
    Thrift.Value
    Thrift.Wire
  build-depends:
    base >= 4.20 && < 5,
    wireform-core >= 0.3 && < 0.4,
    wireform-derive == 0.2.*,
    bytestring >= 0.11 && < 0.13,
    base16-bytestring >= 1.0 && < 1.1,
    base64-bytestring >= 1.2 && < 1.3,
    containers >= 0.6 && < 0.9,
    text >= 2.0 && < 2.2,
    vector >= 0.13 && < 0.14,
    megaparsec >= 9.0 && < 10,
    template-haskell >= 2.18 && < 2.25,
    prettyprinter >= 1.7 && < 1.8,
    hashable >= 1.3 && < 1.6,
    unordered-containers >= 0.2.16 && < 0.3,
    deepseq >= 1.4 && < 1.6,
    aeson >= 2.1 && < 2.4,
    scientific >= 0.3 && < 0.4,
    stm >= 2.5 && < 2.6

benchmark wireform-thrift-bench
  import: defaults
  type: exitcode-stdio-1.0
  hs-source-dirs: bench
  main-is: Bench.hs
  ghc-options: -O2
  build-depends:
    base,
    wireform-thrift,
    bytestring,
    deepseq,
    text,
    vector,
    criterion >= 1.5 && < 1.7

test-suite wireform-thrift-derive-test
  import: defaults
  ghc-options: -rtsopts
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  other-modules:
    Test.Thrift.CompactBool
    Test.Thrift.Derive
    Test.Thrift.Derive.Types
    Test.Thrift.Derive.Instances
  default-extensions:
    ScopedTypeVariables
    TemplateHaskell
  build-depends:
    base,
    wireform-thrift,
    wireform-derive,
    wireform-core,
    bytestring,
    hedgehog,
    sydtest-hedgehog,
    text,
    vector,
    sydtest