package cstruct
- Overview
- No Docs
You can search for identifiers within the package.
in-package search v0.2.0
access C structures via a camlp4 extension
Install
Dune Dependency
Authors
Maintainers
Sources
v1.9.0.tar.gz
sha256=2d175bf1e2cdc5ca43cb30bd3fa507beee2f18b2cbecae801ab6ffaecde16c9c
md5=59b512261058e1fe649d10d6ac268285
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 using PPX extension points is:
[%%cstruct
type pcap_header = {
magic_number: uint32_t; (* magic number *)
version_major: uint16_t; (* major version number *)
version_minor: uint16_t; (* minor version number *)
thiszone: uint32_t; (* GMT to local correction *)
sigfigs: uint32_t; (* accuracy of timestamps *)
snaplen: uint32_t; (* max length of captured packets, in octets *)
network: uint32_t; (* data link type *)
} [@@little_endian]]
An example pcap description using Camlp4 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
Dependencies (7)
- conf-time
- base-bytes
- sexplib
- ocplib-endian
-
type_conv
build
-
ocamlfind
build
-
ocaml
>= "4.01.0" & < "4.03.0"
Dev Dependencies (1)
-
ounit
with-test
-
albatross
< "1.3.0"
-
angstrom
< "0.7.0"
-
arakoon
>= "1.8.6" & < "1.8.12"
-
asn1-combinators
>= "0.1.2" & != "0.2.0-1" & < "0.2.6"
-
awa-mirage
< "0.0.2"
- balancer
- buffer-pool
-
capnp-rpc-net
>= "1.1" & < "1.2.1"
- channel
-
charrua-client
< "0.9"
-
charrua-core
< "0.8"
-
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"
-
conex
< "0.10.0"
- conex-mirage-crypto
- conex-nocrypto
-
cowabloga
>= "0.0.5"
- crc
-
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
-
dns
>= "0.15.0" & < "0.19.0"
-
dream
< "1.0.0~alpha2"
-
duff
< "0.3"
-
eqaf
>= "0.8" & < "0.10"
- eqaf-cstruct
-
fat-filesystem
>= "0.10.0" & < "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"
- gpt
- h2-mirage
-
hacl-star
>= "0.7.0"
-
hex
>= "0.2.0"
-
hkdf
< "1.0.3"
- httpun-mirage
- httpun-ws-mirage
-
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" & < "2.0.0"
-
irmin-git
>= "2.3.0"
-
irmin-indexeddb
>= "0.3"
- iso-filesystem
-
key-parsers
>= "0.5.0" & < "1.2.1"
- launchd
-
letsencrypt
= "0.2.5"
-
letsencrypt-app
< "0.4.0"
-
macaddr-cstruct
< "5.2.0"
-
mbr-format
< "1.0.0"
- metrics-mirage
-
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-ramdisk
-
mirage-block-solo5
< "0.6.2"
-
mirage-block-unix
< "2.8.3"
-
mirage-block-xen
< "2.1.1"
- mirage-btrees
- mirage-channel-lwt
-
mirage-clock-unix
< "1.0.0"
-
mirage-clock-xen
< "1.0.0"
-
mirage-conduit
= "2.3.1"
- mirage-console-lwt
-
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-console-xen-cli
-
mirage-dns
< "2.6.0"
-
mirage-entropy
< "0.5.0"
- mirage-entropy-unix
- mirage-entropy-xen
-
mirage-flow
< "1.2.0"
-
mirage-flow-rawlink
>= "1.1.0"
-
mirage-fs
>= "0.4.0" & < "1.0.0"
- mirage-fs-lwt
- mirage-fs-mem
-
mirage-fs-unix
< "1.4.1"
- mirage-kv-lwt
-
mirage-nat
< "2.2.4"
-
mirage-net
= "0.5.2"
-
mirage-net-fd
< "0.2.1"
- mirage-net-lwt
- mirage-net-macosx
- mirage-net-solo5
-
mirage-net-unix
!= "2.4.1"
-
mirage-net-xen
< "1.7.0"
-
mirage-profile
< "0.8.0"
- mirage-protocols-lwt
-
mirage-qubes
< "0.8.0"
-
mirage-qubes-ipv4
< "0.9.3"
-
mirage-random
< "2.0.0"
- mirage-random-stdlib
- mirage-random-test
- mirage-solo5
-
mirage-stack-lwt
< "1.1.0"
- mirage-tc
- mirage-tcpip-unix
- mirage-tcpip-xen
-
mirage-types-lwt
< "3.4.0"
-
mirage-unix
< "3.0.8"
-
mirage-vnetif
< "0.4.0"
-
mirage-www
< "0.4.0" | >= "1.1.0"
-
mirage-xen
< "2.0.0" | >= "2.3.2"
- monorobot
- mrt-format
-
mstruct
< "1.3.4"
-
nbd
>= "0.9.2" & < "4.0.3"
-
nocrypto
< "0.5.4"
- noise
- openflow
-
otr
< "0.3.9"
-
ox
< "1.1.1"
- packet
-
pbkdf
< "0.3.0" | = "1.1.0"
-
pcap-format
>= "0.3.3"
- pcf-format
-
ppx_cstruct
< "3.0.1"
-
protocol-9p
< "0.11.2"
-
protocol-9p-tool
= "0.12.0" | >= "2.0.0" & < "2.0.2"
-
protocol-9p-unix
< "0.11.2"
-
qcow
< "0.11.0"
- qcow-format
- qcow-tool
-
randomconv
< "0.2.0"
-
rawlink
< "0.6"
-
resp-mirage
= "0.10.0"
-
rfc6287
>= "1.0.2" & < "1.0.4"
-
salsa20
< "1.1.0"
-
salsa20-core
< "1.0.0"
-
scrypt-kdf
< "1.1.0"
-
sendmail
>= "0.4.1" & < "0.5.0"
-
shared-block-ring
< "2.3.0"
-
shared-memory-ring
< "2.0.0"
- slack
- ssh-agent
-
tar
< "2.0.0"
-
tar-format
>= "0.2.0"
-
tar-mirage
< "3.0.0"
-
tar-unix
< "2.0.0"
-
tcpip
< "3.0.0"
- tftp
-
tls
< "0.9.0"
-
u2f
= "0.1.1"
-
vchan
!= "3.0.0" & < "6.0.1"
-
vchan-unix
>= "4.0.0"
-
vchan-xen
>= "4.0.0"
- vhd-format
- vhd-format-lwt
- vhd-tool
- vmnet
-
websocket
= "2.2"
-
x509
< "0.6.3"
- xapi-rrd-transport
- xe
- xe-unikernel-upload
-
xen-api-client
>= "0.9.6"
-
xen-block-driver
>= "0.2.5"
- xen-gnt
-
xenstore
>= "1.2.0" & < "1.3.0"
- xentropyd
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page