scheme-bert /

Filename Size Date modified Message
src
test
48 B
38 B
1.4 KB
1.8 KB

scheme-bert

scheme-bert is a BERT (Binary ERlang Term) serialization library for Scheme implementations compliant to R^6RS. BERT is based on Erlang's External Term Format.

See the BERT specification at bert-rpc.org.

Instances of the following Scheme types will be automatically converted to the proper simple BERT type:

  • flonum?
  • integer? (fixnum and bignum)
  • symbol?
  • list?
  • string?
  • vector?

Instances of the following Scheme types will be automatically converted to the proper complex BERT type:

  • 'nil
  • #t
  • #f
  • hashtable?
  • time?

Installation

Installation for Racket:

$ plt-r6rs --install ./src/scheme-bert.ss

(see Installing Libraries for more info)

Usage

Issue (import (scheme-bert)) in your REPL or put this in head of your source file. You will also probably want to import some other libraries such as bytevectors.

> (bert-encode (vector 'foo 42 666 (vector 12 '() (vector 255 'bar) 111222333444555666)))
#"\203h\4d\0\3fooa*b\0\0\2\232h\4a\fjh\2a\377d\0\3barn\b\0\222\203\r|\37$\213\1"

> (bert-decode #"\203m\0\0\0001Most people would rather die than think; many do.")
"Most people would rather die than think; many do."

Caveats

Regular expressions conversion is not supported, because every Scheme comes with its own regexp implementation and I haven't found any portable library which allows one to get the source string and options of a compiled regexp.

Trivia

Please, drop me an email if you used or intend to use the library in your project ;-)

Copyright (c) 2010 Yasir M. Arsanukaev. See LICENSE for details.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.