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,