cstruct
access C structures via a camlp4 extension
Description
Cstruct is a library and syntax extension to make it easier to access C-like structures directly from OCaml. It supports both reading and writing to these structures, and they are accessed via the Bigarray module.
An example pcap description is:
cstruct pcap_header {
uint32_t magic_number; (* magic number *)
uint16_t version_major; (* major version number *)
uint16_t version_minor; (* minor version number *)
uint32_t thiszone; (* GMT to local correction *)
uint32_t sigfigs; (* accuracy of timestamps *)
uint32_t snaplen; (* max length of captured packets, in octets *)
uint32_t network (* data link type *)
} as little_endian
Install
copied = false, 2000)"
:class="{ 'border-gray-700': !copied, 'text-gray-100': !copied, 'focus:ring-orange-500': !copied, 'focus:border-orange-500': !copied, 'border-green-600': copied, 'text-green-600': copied, 'focus:ring-green-500': copied, 'focus:border-green-500': copied }">
- Published
- 24 Nov 2014
- Authors
- Maintainers
Sources
Dependencies
ocamlbuild
build & != "0.9.0"
sexplib
< "113.01.00"
ounit
with-test
ocamlfind
build
ocaml
< "4.06.0"
Reverse Dependencies
albatross
< "1.3.0"
angstrom
< "0.7.0"
asn1-combinators
< "0.2.0-1"
charrua-client
< "0.9"
charrua-core
< "0.3"
charrua-unix
< "0.3" | = "0.6"
cohttp
>= "0.9.7" & < "0.10.0"
conduit
>= "0.6.0" & < "0.15.2"
conduit-async
= "3.0.0"
conduit-lwt
= "3.0.0"
cowabloga
>= "0.0.5"
crunch
>= "2.0.0" & < "3.0.0"
cstruct-lwt
< "3.0.0"
cstruct-unix
< "3.0.0"
datakit-ci
>= "0.10.0" & < "0.12.4"
datakit-client
< "0.9.0"
datakit-server
< "0.9.0"
depyt
< "0.3.0"
dns
>= "0.8.0" & < "0.18.0"
dream
< "1.0.0~alpha2"
duff
< "0.3"
eqaf
>= "0.8"
fat-filesystem
< "0.11.0"
frenetic
< "2.0.0" | >= "3.2.0" & < "5.0.5"
git
>= "1.4.3" & < "1.6.0" | >= "2.0.0" & < "3.0.0"
git-http
< "1.11.0"
git-mirage
= "1.11.0"
github-hooks
>= "0.2.0"
gluten-mirage
< "0.3.0"
hex
= "0.2.0"
hvsock
< "1.0.0"
io-page
< "2.0.0"
io-page-unix
< "2.0.0"
io-page-xen
< "2.0.0"
ipaddr-cstruct
< "5.2.0"
irmin
>= "0.9.0" & < "0.10.0"
irmin-git
>= "2.3.0"
letsencrypt
= "0.2.5"
letsencrypt-app
< "0.4.0"
macaddr-cstruct
< "5.2.0"
mbr-format
< "1.0.0"
mirage
>= "0.7.2" & < "0.9.1" | >= "0.10.0" & < "2.4.0"
mirage-block
< "1.0.0"
mirage-block-ccm
< "1.1.0"
mirage-block-solo5
< "0.6.2"
mirage-block-unix
< "2.8.3"
mirage-block-xen
< "1.4.0"
mirage-clock-unix
< "1.0.0"
mirage-clock-xen
< "1.0.0"
mirage-conduit
= "2.3.1"
mirage-console-solo5
>= "0.2.0"
mirage-console-unix
< "2.3.2"
mirage-console-xen
= "4.0.0"
mirage-console-xen-backend
>= "2.3.2" & < "2.3.4" | = "4.0.0"
mirage-dns
< "2.6.0"
mirage-entropy
< "0.5.0"
mirage-flow
< "1.2.0"
mirage-flow-rawlink
>= "1.1.0"
mirage-fs
>= "0.4.0" & < "1.0.0"
mirage-fs-unix
< "1.4.1"
mirage-kv-lwt
>= "2.0.0"
mirage-nat
< "2.2.4"
mirage-net
= "0.5.2"
mirage-net-unix
< "2.3.0"
mirage-net-xen
< "1.5.0"
mirage-profile
< "0.7.0"
mirage-qubes
< "0.3"
mirage-types-lwt
< "3.4.0"
mirage-unix
< "3.0.8"
mirage-vnetif
< "0.4.0"
mirage-www
< "0.4.0" | >= "1.1.0"
mstruct
< "1.3.4"
nbd
>= "0.9.2" & < "2.1.0"
nocrypto
< "0.5.0"
otr
< "0.2.0"
ox
< "1.1.1"
pbkdf
= "1.1.0"
pcap-format
= "0.3.3"
ppx_cstruct
< "3.0.1"
protocol-9p
< "0.5.1"
protocol-9p-tool
= "0.12.0" | >= "2.0.0" & < "2.0.2"
qcow
< "0.11.0"
rawlink
< "0.4"
resp-mirage
= "0.10.0"
sendmail
>= "0.4.1" & < "0.5.0"
shared-block-ring
< "2.3.0"
shared-memory-ring
< "1.2.0"
tar-format
>= "0.2.0" & < "0.5.0"
tcpip
< "2.7.0"
tls
< "0.6.0"
u2f
= "0.1.1"
vchan
< "2.1.0"
vhd-format
< "0.8.0"
vmnet
< "1.1.0"
websocket
= "2.2"
x509
< "0.5.0"
xen-api-client
>= "0.9.6"
xen-block-driver
>= "0.2.5"
xenstore
>= "1.2.0" & < "1.3.0"