locallycompact / composite-base

Integrations with Vinyl/Frames records (core library).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

composite

Build status

Composite is a group of libraries focusing on practical uses of composite records, in particular Vinyl, such as querying records from a database and converting them to JSON. These libraries are based on the excellent Frames style use of Vinyl records, though composite implements its own derived from Frames to make for a smaller dependency graph, as Frames is a full CSV parsing/printing and data manipulation library.

Downstream projects have moved to https://github.com/composite-hs/composite.

composite-base

Definitions shared by the other composite libraries or generally useful when using Vinyl records. Includes some Template Haskell splices to generate various optics for records, as well as a specialization of MonadReader which works on a context record, providing general environment for a computation.

Maturity

As of writing, we use these libraries in all our Haskell projects internally and have had no major issues. There are spots using either composite or vinyl where the compiler error messages could use improvement. There are certain use cases that can cause the simplifier to crash, though we have not observed any runtime errors as yet. They have not been proven out for performance at larger scale. We'd appreciate any fixes, improvements, or experience reports.

Contributing

Contributions and feedback welcome! File an issue or make a PR.

About

Integrations with Vinyl/Frames records (core library).

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Haskell 97.6%Language:Nix 2.4%Language:Shell 0.1%