package checkseum
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=b9e4d054e17618b1faed8c0eb15afe0614b2f093e58b59a180bda4500a5d2da1
sha512=356e07b7e33231a30699a166f94b2f29f2d8c35d8ab878f46d4718b4186365329947364beece76f24e2c9028b85567a2b905e777576c28f02fc81ee7962f3309
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: 23 Feb 2021
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 buildoptint
Dependencies (7)
- bigarray-compat
- base-bytes
-
optint
>= "0.0.5"
- dune-configurator
-
conf-pkg-config
build
-
dune
>= "2.6.0"
-
ocaml
>= "4.07.0"
Dev Dependencies (7)
Used by (11)
-
albatross
< "2.2.0"
-
carton
< "0.4.3"
-
carton-lwt
< "0.4.4"
-
decompress
>= "0.8" & != "1.4.2"
-
esperanto-cosmopolitan
>= "0.0.5"
-
git
>= "2.0.0" & < "3.9.1"
- gptar
-
irmin-pack
>= "3.5.0"
- octez-internal-libs
- oneffs
-
rfc1951
< "1.0.0" | >= "1.3.0"
Conflicts (2)
-
ocaml-freestanding
< "0.4.3"
-
mirage-xen
< "6.0.0"