package checkseum
Install
dune-project
Dependency
Authors
Maintainers
Sources
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.cor
$ utop -require checkseum.ocamlIn 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-bytesbase-bigarrayduneto buildoptint
Dependencies (7)
- bigarray-compat
- base-bytes
-
optint
>= "0.0.3" & < "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.3.0" -
carton
< "0.4.3" | >= "1.0.0" -
carton-lwt
< "0.7.2" -
decompress
!= "1.4.2" -
esperanto-cosmopolitan
>= "0.0.5" -
git
< "3.15.0" - gptar
-
irmin-pack
>= "3.5.2" - octez-internal-libs
- oneffs
-
rfc1951
< "1.0.0" | >= "1.3.0"
Conflicts (2)
-
ocaml-freestanding
< "0.4.3" -
mirage-xen
< "6.0.0"