Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
* [ANNOUNCE] OCaml Bitstring 2.0.2
@ 2010-01-09 10:08 Richard Jones
  2010-01-09 10:55 ` [Caml-list] " Mehdi Dogguy
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Richard Jones @ 2010-01-09 10:08 UTC (permalink / raw)
  To: caml-list


Bitstring is a syntax extension which adds Erlang-style bit matching
and construction to OCaml programs.  You can use this to efficiently
and safely parse communication protocols and binary file formats.

Bitstring handles integers, booleans, strings, sub-bitstrings, big-,
little- and native-endianness, signed and unsigned types,
variable-width fields, fields whose width depends on values in
previous fields, fields with arbitrary bit alignment, forward offsets,
when-clauses, checked expressions, security against buffer overflows
and DoS, and lots more.

Example:

  let bits = Bitstring.bitstring_of_file "image.gif" in
  bitmatch bits with
  | { ("GIF87a"|"GIF89a") : 6*8 : string; (* GIF magic. *)
      width : 16 : littleendian;
      height : 16 : littleendian } ->
      printf "%s: GIF image is %d x %d pixels" filename width height
  | { _ } ->
      eprintf "%s: Not a GIF image\n" filename

The latest version is 2.0.2 which fixes a number of compilation
problems related to OCaml 3.11, and incorporates some unofficial
patches which were floating around.  (Note that bitstring 2.0.0 is
known to be broken on Debian).

  Home page:
    http://code.google.com/p/bitstring/
  API documentation:
    http://people.redhat.com/~rjones/bitstring/html/Bitstring.html

Rich.

-- 
Richard Jones
Red Hat


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2010-01-09 19:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-09 10:08 [ANNOUNCE] OCaml Bitstring 2.0.2 Richard Jones
2010-01-09 10:55 ` [Caml-list] " Mehdi Dogguy
2010-01-09 11:23 ` Matthieu Dubuget
2010-01-09 11:33   ` Matthieu Dubuget
2010-01-09 19:13 ` ANN: UseOcaml.cmake script Keyan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox