ghc-HsYAML/HsYAML-0.2.1.0.cabal
2022-06-07 16:20:49 +08:00

157 lines
5.3 KiB
Plaintext

cabal-version: 1.14
name: HsYAML
version: 0.2.1.0
x-revision: 4
synopsis: Pure Haskell YAML 1.2 processor
homepage: https://github.com/hvr/HsYAML
bug-reports: https://github.com/hvr/HsYAML/issues
license: GPL-2
X-SPDX-License-Identifier: GPL-2.0-or-later
license-files: LICENSE.GPLv2 LICENSE.GPLv3
author: Herbert Valerio Riedel
maintainer: hvr@gnu.org
copyright: 2015-2018 Herbert Valerio Riedel
, 2007-2008 Oren Ben-Kiki
category: Text
build-type: Simple
tested-with:
GHC == 9.2.1
GHC == 9.0.1
GHC == 8.10.7
GHC == 8.8.4
GHC == 8.6.5
GHC == 8.4.4
GHC == 8.2.2
GHC == 8.0.2
GHC == 7.10.3
GHC == 7.8.4
GHC == 7.6.3
GHC == 7.4.2
description:
@HsYAML@ is a [YAML 1.2](http://yaml.org/spec/1.2/spec.html) processor, i.e. a library for parsing and serializing YAML documents.
.
Features of @HsYAML@ include:
.
* Pure Haskell implementation with small dependency footprint and emphasis on strict compliance with the [YAML 1.2 specification](http://yaml.org/spec/1.2/spec.html).
* Direct decoding to native Haskell types via (@aeson@-inspired) typeclass-based API (see "Data.YAML").
* Allows round-tripping while preserving ordering, anchors, and comments at Event-level.
* Support for constructing custom YAML node graph representation (including support for cyclic YAML data structures).
* Support for the standard (untyped) /Failsafe/, (strict) /JSON/, and (flexible) /Core/ \"schemas\" providing implicit typing rules as defined in the YAML 1.2 specification (including support for user-defined custom schemas; see "Data.YAML.Schema").
* Support for emitting YAML using /Failsafe/, (strict) /JSON/, and (flexible) /Core/ \"schemas\" (including support for user-defined custom encoding schemas; see "Data.YAML.Schema").
* Event-based API resembling LibYAML's Event-based API (see "Data.YAML.Event").
* Low-level API access to lexical token-based scanner (see "Data.YAML.Token").
.
See also the <//hackage.haskell.org/package/HsYAML-aeson HsYAML-aeson> package which allows to decode and encode YAML by leveraging @aeson@'s 'FromJSON' and 'ToJSON' instances.
extra-source-files:
ChangeLog.md
source-repository head
type: git
location: https://github.com/hvr/HsYAML.git
flag exe
description: Enable @exe:yaml-test@ component
manual: True
default: False
library
hs-source-dirs: src
exposed-modules: Data.YAML
, Data.YAML.Schema
, Data.YAML.Event
, Data.YAML.Token
other-modules: Data.YAML.Loader
, Data.YAML.Dumper
, Data.YAML.Internal
, Data.YAML.Event.Internal
, Data.YAML.Event.Writer
, Data.YAML.Pos
, Data.YAML.Schema.Internal
, Data.YAML.Token.Encoding
, Util
, Data.DList
default-language: Haskell2010
other-extensions: DeriveGeneric
FlexibleContexts
FlexibleInstances
FunctionalDependencies
MultiParamTypeClasses
OverloadedStrings
PostfixOperators
RecordWildCards
RecursiveDo
Safe
ScopedTypeVariables
Trustworthy
TypeSynonymInstances
build-depends: base >=4.5 && <4.17
, bytestring >=0.9 && <0.12
, containers >=0.4.2 && <0.7
, deepseq >=1.3.0 && <1.5
, text >=1.2.3 && <2.1
, mtl >=2.2.1 && <2.3
, parsec >=3.1.13.0 && < 3.2
-- for GHC.Generics
if impl(ghc < 7.6)
build-depends: ghc-prim
if !impl(ghc >= 8.0)
build-depends: fail >=4.9.0.0 && <4.10
if !impl(ghc >= 7.10)
build-depends: nats >=1.1.2 && <1.2
ghc-options: -Wall
executable yaml-test
hs-source-dirs: src-test
main-is: Main.hs
other-modules: TML
default-language: Haskell2010
if flag(exe)
build-depends: HsYAML
-- inherited constraints
, bytestring >= 0.10.8.0
, base
, text
, containers
, mtl
-- non-inherited
, megaparsec >= 7.0 && < 10
, microaeson == 0.1.*
, filepath == 1.4.*
, directory >= 1.2 && < 1.4
else
buildable: False
ghc-options: -rtsopts
test-suite tests
default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: tests
main-is: Tests.hs
ghc-options: -rtsopts
build-depends: HsYAML
-- inherited constraints
, bytestring >= 0.10.8.0
, base
, text
, containers
, mtl
-- non-inherited
, QuickCheck == 2.14.*
, tasty == 1.4.*
, tasty-quickcheck == 0.10.*