• Stars
    star
    185
  • Rank 202,100 (Top 5 %)
  • Language
    Haskell
  • Created almost 9 years ago
  • Updated 19 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Binary serialisation in the CBOR format

Fast binary serialisation and CBOR implementation for Haskell

Haskell CI Hackage cborg version Hackage serialise version BSD3 Haskell

This repo contains two libraries (plus associated tools):

The serialise library is for serialising Haskell values and deserialising them later.

The cborg library provides a fast, standards-compliant implementation of the 'Concise Binary Object Representation' (specified in RFC 7049) for Haskell.

The serialise library uses the CBOR format, via the cborg library, which gives it the following benefits:

  • fast serialisation and deserialisation
  • compact binary format
  • stable format across platforms (32/64bit, big/little endian)
  • support for backwards compatible deserialisation with migrations
  • the ability to inspect binary values with generic tools, e.g. for debugging or recovery, including generic conversion into JSON text
  • potential to read the serialised format from other languages
  • incremental or streaming (de)serialisation
  • internal message framing (for use in network application)
  • suitable to use with untrusted input (resistance to asymmetric resource consumption attacks)

Installation

They are just a cabal install away on Hackage:

$ cabal install cborg serialise

There are also a few related packages that you may be interested in:

  • cborg-json implements the bijection between JSON and CBOR specified in the RFC.
  • cbor-tool is a handy command-line utility for working with CBOR data.

Join in

Be sure to read the contributing guidelines. File bugs in the GitHub issue tracker.

Master git repository:

  • git clone https://github.com/well-typed/cborg.git

The tests for the cborg package are currently included in the serialise package.

$ cabal test serialise

Authors

See AUTHORS.txt.

License

BSD3. See LICENSE.txt for the exact terms of copyright and redistribution.

More Repositories

1

optics

Optics as an abstract interface
Haskell
366
star
2

generics-sop

Generic Programming using True Sums of Products
Haskell
157
star
3

visualize-cbn

Haskell
94
star
4

ghc-events-analyze

Haskell
66
star
5

unfolder

Repository with code snippets that accompany episodes of The Haskell Unfolder
Haskell
64
star
6

full-text-search

An in-memory full text search engine library. It lets you run full-text queries on a collection of your documents.
Haskell
46
star
7

gp-zurihac-2020

Repository accompanying the ZuriHac Advanced Track lecture on Datatype-Generic Programming
Haskell
44
star
8

plutonomy

An optimizer for untyped plutus core
Haskell
41
star
9

large-records

Library to support efficient compilation of large records (linear in the number of record fields)
Haskell
41
star
10

memory-usage-zurihac-2021

Nix
35
star
11

falsify

Haskell
33
star
12

recover-rtti

Recover run-time type information from the GHC heap. One example use case is a "show anything" function (with no Show constraint).
Haskell
31
star
13

grapesy

Native Haskell gRPC client and server based on `http2`
Haskell
27
star
14

ixset-typed

More strongly typed variant of the ixset Haskell package
Haskell
23
star
15

basic-sop

Basic examples and functions for generics-sop
Haskell
20
star
16

lens-sop

Computing lenses generically using generics-sop
Haskell
15
star
17

ghc-eventlog-socket

Pipe the GHC eventlog stream to a UNIX domain socket
C
15
star
18

memory-profiling-webinar

Source code for the memory profiling webinar livestreamed at Dec 1, 2022
Haskell
12
star
19

pretty-sop

A generic pretty-printer using generics-sop
Haskell
12
star
20

eventlog-live

Haskell
12
star
21

json-sop

Generic JSON (de)serialization using generics-sop
Haskell
11
star
22

optics-zurihac-2021

Haskell
10
star
23

apply

Type-level descriptions of composable transformations for use with DerivingVia
Haskell
9
star
24

canonical-json

Canonical JSON for signing and hashing JSON values
Haskell
9
star
25

lazy-evaluation-zurihac-2023

Slides and code for the ZuriHac 2023 talk on Lazy Evaluation
Haskell
8
star
26

blockio-uring

Library to perform batches of asynchronous disk IO operations. Implemented using Linux io_uring API.
Haskell
7
star
27

quickcheck-lockstep

Support for lockstep-style testing using quickcheck-dynamic
Haskell
6
star
28

qsm-in-depth

Demo code for the blog post "An in-depth look at quickcheck-state-machine"
Haskell
5
star
29

trace-foreign-calls

GHC plugin to add eventlog tracing for foreign function calls
Haskell
5
star
30

dupIO

Haskell
4
star
31

libedsign

Small, high-security cryptographic signing library
C
4
star
32

type-inference-munihac-2022

Haskell
3
star
33

typelet

3
star
34

integrated-shrinking

Demo code to go with the blogpost "Integrated versus Manual Shrinking"
Haskell
3
star
35

blogpost-purgatory

Repo accompanying the "Calling purgatory from heaven" blogpost
Rust
3
star
36

redblack

Haskell
3
star
37

types-zurihac-2022

Haskell
3
star
38

snappy-c

Bindings to the C API Google's Snappy: A fast compression library
Haskell
3
star
39

hooks-build-type

Haskell
2
star
40

ismm-2020-nonmoving-gc

Online appendix for "Alligator Collector: A Latency-Optimized Garbage Collector for Functional Programming Languages"
Jupyter Notebook
2
star
41

iosim-zurihac-2022

Haskell
2
star
42

io-haskellx2022

Introductory talk about IO in Haskell presented at HaskellX 2022
Haskell
1
star
43

parsing-munihac2023

Materials for the MuniHac 2023 workshop on parser combinators
Haskell
1
star
44

sop-haddocks

Get access to Haddocks in `generics-sop` style generic functions
Haskell
1
star
45

staging-bobkonf2024

Materials for the BOBkonf 2024 tutorial on staging
Haskell
1
star
46

nothunks-prelude

Haskell
1
star
47

borsh

Haskell
1
star
48

memory-usage-munihac-2022

Materials for the MuniHac 2022 "Profiling Memory Usage with eventlog2html and ghc-debug" workshop.
Haskell
1
star
49

specialist

GHC plugin for surgical specialization
Haskell
1
star