data-standards alternatives and similar packages
Based on the "Data" category.
Alternatively, view data-standards alternatives based on common mentions on social networks and blogs.
-
lens
Lenses, Folds, and Traversals - Join us on web.libera.chat #haskell-lens -
semantic-source
Parsing, analyzing, and comparing source code across many languages -
text
Haskell library for space- and time-efficient operations over Unicode text. -
code-builder
Packages for defining APIs, running them, generating client code and documentation. -
compendium-client
Mu (μ) is a purely functional framework for building micro services. -
cassava
A CSV parsing and encoding library optimized for ease of use and high performance -
unordered-containers
Efficient hashing-based container types -
holmes
A reference library for constraint-solving with propagators and CDCL. -
resource-pool
A high-performance striped resource pooling implementation for Haskell -
primitive
This package provides various primitive memory-related operations. -
binary
Efficient, pure binary serialisation using ByteStrings in Haskell. -
dependent-sum
Dependent sums and supporting typeclasses for comparing and displaying them -
discrimination
Fast linear time sorting and discrimination for a large class of data types -
json-autotype
Automatic Haskell type inference from JSON input -
audiovisual
Extensible records, variants, structs, effects, tangles -
safecopy
An extension to Data.Serialize with built-in version control -
dependent-map
Dependently-typed finite maps (partial dependent products) -
IORefCAS
A collection of different packages for CAS based data structures. -
reflection
Reifies arbitrary Haskell terms into types that can be reflected back into terms -
protobuf
An implementation of Google's Protocol Buffers in Haskell. -
streaming
An optimized general monad transformer for streaming applications, with a simple prelude of functions -
orgmode-parse
Attoparsec parser combinators for parsing org-mode structured text! -
bifunctors
Haskell 98 bifunctors, bifoldables and bitraversables -
text-icu
This package provides the Haskell Data.Text.ICU library, for performing complex manipulation of Unicode text. -
scientific
Arbitrary-precision floating-point numbers represented using scientific notation -
uuid-types
A Haskell library for creating, printing and parsing UUIDs -
typerep-map
⚡️Efficient implementation of Map with types as keys
Less time debugging, more time building
Do you think we are missing an alternative of data-standards or a related project?
README
A number of the ISO standards are particularly attractive to being implemented as static data libraries: they describe short strings that are prone to error if left as 'Text', but are large enough to strongly discourage rewriting them for each project. It is no surprise, therefore, that this package is the fourth on Hackage to implement ISO 3166-1:
- "Data.ISO3166_CountryCodes" from iso3166-country-codes
- "Data.CountryCodes" from country-codes
- "Country" from country
However, none of those options truly seemed to provide an ideal, /complete/
experience. Only one (country
) provides all three code encodings, but it
doesn't expose constructors for pattern matching. None of them implement the
other two parts of ISO 3166 (region codes, and historic countries), and the
only package that makes an effort to do so ("Data.StateCodes" from
state-codes) doesn't cover
anything beyond the US. Someone who only needs the alpha-2 codes ("CA") may
indeed find one of the existing packages sufficient, but for anyone who does
need the full power of ISO 3166-2, none of them would serve.
The lack of people who would actually find this useful is another matter. (Eight packages using the simple alpha-2 codes from one or another of the above, as of writing.)
This package is an attempt to package that standard -- and, eventually, others
like it -- in a consistent API based in standard Haskell; fromEnum
rather
than encodeNumeric
, for example.
The following standards are implemented:
ISO 3166-1 (
Data.Standards.ISO.Country.Primary
)- alpha-2 (
Data.Standards.ISO.Country.Primary.Alpha2
) - alpha-3 (
Data.Standards.ISO.Country.Primary.Alpha3
) - numeric (
Data.Standards.ISO.Country.Primary.Numeric
)
- alpha-2 (