packages feed

mfmts-1.0.0.0: mfmts.cabal

cabal-version:   3.0
version:         1.0.0.0
name:            mfmts
build-type:      Simple
author:          Zoey McBride
maintainer:      zoeymcbride@mailbox.org
license:         AGPL-3.0-or-later
license-file:    LICENSE.txt
extra-doc-files: README.md, CHANGE_LOG.md
category:        Hash, Codec, Protocol
synopsis:        Implements multiformats specification
description:
    Implments the multiformats specification used in IPFS and other distributed
    systems.

source-repository head
  type:     git
  location: https://git.sr.ht/~z0/mfmts

-- | Base language settings. Imported for all libraries.
common haskell-settings
    default-language: GHC2021
    default-extensions: StrictData
    ghc-options: -Wall -Wextra -Wno-unused-top-binds

-- | Packages everything into a single library for distribution.
library
    import: haskell-settings
    hs-source-dirs:
        cid
        multibase
        multicodec
        multihash
        varint
    exposed-modules:
        MultiFormats.VarInt,
        MultiFormats.VarInt.Errors,
        MultiFormats.MultiCodec,
        MultiFormats.MultiBase,
        MultiFormats.MultiBaseSystems,
        MultiFormats.MultiHash,
        MultiFormats.CID,
        MultiFormats.CID.Errors,
        MultiFormats.CID.Serializer,
        MultiFormats.CID.Extractor,
        MultiFormats.CID.Parser,
        MultiFormats.CID.Internal,
        MultiFormats.CID.Internal.CIDCodec,
        MultiFormats.CID.Internal.CIDDecoder,
        MultiFormats.CID.Internal.CIDHash,
        MultiFormats.CID.Internal.CIDVersion,
    build-depends:
        array >= 0.5.8 && < 0.6,
        base >= 4.18.3 && < 4.19,
        basesystems >= 1.0.0 && < 1.1,
        bytestring >= 0.11.5 && < 0.12,
        containers >= 0.6.7 && < 0.7,
        text >= 1.2.5 && < 1.3,
        crypton >= 1.0.6 && < 1.1,
        memory >= 0.18.0 && < 0.19,


-- | Implements unsigned variable length integers.
library mfmts-varint
    import: haskell-settings
    hs-source-dirs: varint
    exposed-modules:
        MultiFormats.VarInt,
        MultiFormats.VarInt.Errors,
    build-depends:
        base >= 4.18.3 && < 4.19,
        bytestring >= 0.11.5 && < 0.12,
        containers >= 0.6.7 && < 0.7,

-- | Lookup table for MultiCodecs. Generated from Python.
library mfmts-multicodec
    import: haskell-settings
    hs-source-dirs: multicodec
    exposed-modules:
        MultiFormats.MultiCodec,
    build-depends:
        base >= 4.18.3 && < 4.19,
        bytestring >= 0.11.5 && < 0.12,
        containers >= 0.6.7 && < 0.7,
        mfmts-varint

-- | Encode/decode mutibase strings with identifying prefix.
library mfmts-multibase
    import: haskell-settings
    hs-source-dirs: multibase
    exposed-modules:
        MultiFormats.MultiBase,
        MultiFormats.MultiBaseSystems,
    build-depends:
        base >= 4.18.3 && < 4.19,
        array >= 0.5.8 && < 0.6,
        bytestring >= 0.11.5 && < 0.12,
        containers >= 0.6.7 && < 0.7,
        text >= 1.2.5 && < 1.3,
        basesystems >= 1.0.0 && < 1.1,

-- | Associates MultiCodecs for hash functions with implementations.
library mfmts-multihash
    import: haskell-settings
    hs-source-dirs: multihash
    exposed-modules:
        MultiFormats.MultiHash,
    build-depends:
        base >= 4.18.3 && < 4.19,
        bytestring >= 0.11.5 && < 0.12,
        containers >= 0.6.7 && < 0.7,
        crypton >= 1.0.6 && < 1.1,
        memory >= 0.18.0 && < 0.19,
        mfmts-multicodec

-- | Modules for reading/writing CIDs.
library mfmts-cid
    import: haskell-settings
    hs-source-dirs: cid
    exposed-modules:
        MultiFormats.CID,
        MultiFormats.CID.Errors,
        MultiFormats.CID.Serializer,
        MultiFormats.CID.Extractor,
        MultiFormats.CID.Parser,
        MultiFormats.CID.Internal,
        MultiFormats.CID.Internal.CIDCodec,
        MultiFormats.CID.Internal.CIDDecoder,
        MultiFormats.CID.Internal.CIDHash,
        MultiFormats.CID.Internal.CIDVersion,
    build-depends:
        base >= 4.18.3 && < 4.19,
        bytestring >= 0.11.5 && < 0.12,
        basesystems >= 1.0.0 && < 1.1,
        mfmts-multibase,
        mfmts-multihash,
        mfmts-multicodec,
        mfmts-varint,