package checkseum

  1. Overview
  2. Docs
Adler-32, CRC32 and CRC32-C implementation in C and OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

checkseum-v0.3.0.tbz
sha256=79584732a1cac6f4f8214ad0f5b99918e2894b80cc27f78a34aeaf4b2e008bbe
sha512=f7359f920170d3bc339a7b97a7fbab0358650b6f8b3b35cf22bafa091686e6ede1ca33f6f3259ae873c80a46b0b46baa0a297a83b8557126d92c825eb9d1cd0e

Description

Checkseum is a library to provide implementation of Adler-32, CRC32 and CRC32-C in C and OCaml.

This library use the linking trick to choose between the C implementation (checkseum.c) or the OCaml implementation (checkseum.ocaml). This library is on top of optint to get the best representation of an int32.

Published: 04 Nov 2020

README

Checkseum

Chekseum is a library which implements ADLER-32 and CRC32C Cyclic Redundancy Check. It provides 2 implementation, the first in C and the second in OCaml. The library is on top of optint to get the best representation of the CRC in the OCaml world.

Linking trick / variant

Then, as digestif, checkseum uses the linking trick. So if you want to use checkseum in a library, you can link with the checkseum package which does not provide an implementation. Then, end-user can choose between the C implementation or the OCaml implementation (both work on Mirage).

So, in utop, to be able to fully use checkseum, you need to write:

$ utop -require checkseum.c

or

$ utop -require checkseum.ocaml

In a dune workspace, the build-system is able to choose silently default implementation (checkseum.c) for your executable if you don't specify one of them. A dune-library is not able to choose an implementatio but still able to use the virtual library checkseum.

Build Requirements

  • OCaml >= 4.03.0

  • base-bytes

  • base-bigarray

  • dune to build

  • optint

Dependencies (7)

  1. bigarray-compat
  2. base-bytes
  3. optint >= "0.0.3" & < "0.0.5"
  4. dune-configurator
  5. conf-pkg-config build
  6. dune >= "2.6.0"
  7. ocaml >= "4.07.0"

Dev Dependencies (7)

  1. ocamlfind with-test
  2. rresult with-test
  3. fpath with-test
  4. fmt with-test
  5. astring with-test
  6. bos with-test
  7. alcotest with-test

Used by (9)

  1. albatross
  2. carton < "0.4.3"
  3. carton-lwt < "0.4.4"
  4. decompress >= "0.8" & != "1.4.2"
  5. esperanto-cosmopolitan >= "0.0.5"
  6. git >= "2.0.0" & < "3.9.1"
  7. irmin-pack >= "3.5.0"
  8. oneffs
  9. rfc1951 < "1.0.0" | >= "1.3.0"

Conflicts (2)

  1. ocaml-freestanding < "0.4.3"
  2. mirage-xen < "6.0.0"