/gleebor

CBOR/RFC 8949 implementation for Gleam

Primary LanguageGleamMIT LicenseMIT

GleeBOR

A CBOR (RFC 8949) Library for Gleam

Package Version Hex Docs

CBOR is a self-describing standardized data format used for data interchange. It's efficient, generally pretty fast, and best of all: has high quality implementations in many languages. This libraries goal is to add to the list of languages that have strong CBOR support!

Warning

The BitArray syntax used throughout this library is currently unsupported by the JavaScript backend. Until this is fixed upstream, this library is only expected to work for BEAM backed applications.

gleam add gleebor
import gleebor
import io

fn read_my_bytes() {
  // 0 major arg, 24 to signal the following byte is the payload value, 123 is an 8-bit
  //number
  <<0:3, 24:5, 123:8>>
}

pub fn main() {
  // Get your bytes somehow!
  let bytes = read_my_bytes()

  let assert Ok(number) = gleebor.decode_int(bytes)
  io.debug(number) // => 123
}

Further documentation can be found at https://hexdocs.pm/gleebor.

Development

gleam test  # Run the tests
gleam shell # Run an Erlang shell

Status

The following describes the current status for this library's progress.

  • Decode
    • Ints
    • Floats
    • Text Strings (Sized)
    • Bytes (sized)
    • Arrays (sized)
    • Maps
    • Tags
    • Indefinite sequences
  • Encode
    • Ints
    • Floats
    • Text Strings (Sized)
    • Bytes (sized)
    • Arrays (sized)
    • Maps
    • Tags
    • Indefinite sequences