package ctypes

  1. Overview
  2. Docs
Combinators for binding to C libraries without writing any C

Install

Dune Dependency

Authors

Maintainers

Sources

0.18.0.tar.gz
md5=5d9ef3790fda7cd97a8cec08be4b5b61

Description

ctypes is a library for binding to C libraries using pure OCaml. The primary aim is to make writing C extensions as straightforward as possible.

The core of ctypes is a set of combinators for describing the structure of C types -- numeric types, arrays, pointers, structs, unions and functions. You can use these combinators to describe the types of the functions that you want to call, then bind directly to those functions -- all without writing or generating any C!

To install the optional ctypes.foreign interface (which uses libffi to provide dynamic access to foreign libraries), you will need to also install the ctypes-foreign optional dependency:

opam install ctypes ctypes-foreign

This will make the ctypes.foreign ocamlfind subpackage available.

Published: 14 Feb 2021

Dependencies (4)

  1. bigarray-compat
  2. ocamlfind build
  3. integers >= "0.3.0"
  4. ocaml >= "4.02.3" & < "5.2"

Dev Dependencies (4)

  1. conf-ncurses with-test
  2. ounit with-test
  3. ctypes-foreign with-test
  4. lwt with-test & >= "3.2.0"

  1. ahrocksdb
  2. arakoon >= "1.8.6" & < "1.8.12"
  3. argon2
  4. async_ssl >= "v0.15.0"
  5. avroc
  6. bimage-unix
  7. binaryen_dsl
  8. bls12-381-legacy
  9. bls12-381-unix < "1.1.0"
  10. cf
  11. cmark
  12. cmarker
  13. ctypes-build
  14. ctypes-foreign = "0.18.0"
  15. ctypes-zarith
  16. ctypes_stubs_js
  17. decompress >= "1.3.0" & < "1.5.3"
  18. directories
  19. dlm >= "0.3.3"
  20. eigen >= "0.1.0"
  21. eris
  22. extism < "1.1.0"
  23. fsevents
  24. gccjit
  25. gdal >= "0.10.0"
  26. gobject-introspection
  27. gpiod
  28. gr
  29. guile
  30. hacl-star-raw >= "0.3.2"
  31. hardcaml-llvmsim >= "0.3.0"
  32. hardcaml-vpi
  33. hardcaml_c
  34. hardcaml_verilator
  35. iocaml-kernel >= "0.4.4"
  36. kqueue < "0.2.0"
  37. libdash >= "0.3"
  38. libudev
  39. lilv
  40. llvm >= "3.7"
  41. lp-glpk
  42. lp-gurobi
  43. luv
  44. luv_unix
  45. lz4 >= "1.1.1"
  46. mariadb >= "1.1.2"
  47. memcpy >= "0.2.1"
  48. mmdb
  49. monocypher
  50. mpg123
  51. nanomsg
  52. nebula
  53. netlink >= "0.2.1"
  54. octez-l2-libs
  55. octez-libs
  56. opasswd >= "1.3.1"
  57. opencc < "transition"
  58. opencc0
  59. opencc1
  60. opencc1_1
  61. orocksdb
  62. osbx < "1.1.1"
  63. osx-acl
  64. osx-attr >= "0.2.0"
  65. osx-cf >= "0.1.1"
  66. osx-fsevents >= "0.1.1"
  67. osx-membership
  68. osx-mount >= "0.1.1"
  69. osx-secure-transport
  70. osx-xattr >= "0.3.0"
  71. owl >= "0.9.0"
  72. pari
  73. pari-bindings
  74. pci
  75. pg_query
  76. pkcs11-driver
  77. pkcs11-rev
  78. portaudio_c_bindings
  79. portmidi
  80. posix-base
  81. posix-bindings
  82. posix-getopt >= "2.0.0"
  83. posix-signal
  84. posix-socket
  85. posix-socket-unix
  86. posix-time2
  87. posix-types
  88. posix-uname
  89. ppx_cstubs >= "0.5.0.1" & != "0.6.0" & != "0.6.1"
  90. protocol-9p < "0.5.1"
  91. py >= "1.1"
  92. quickjs
  93. raygui
  94. raylib
  95. reed-solomon-erasure
  96. rfc1951 >= "1.3.0"
  97. sanlock
  98. sarek >= "20210823"
  99. sattools
  100. sodium >= "0.2.0" & < "0.3.0"
  101. spin >= "0.8.0"
  102. spoc >= "20170724"
  103. srt
  104. swipl
  105. sys-socket
  106. sys-socket-unix
  107. tensorflow
  108. tezos-hacl
  109. tezos-hacl-glue-unix < "11.0"
  110. tezos-sapling >= "11.1"
  111. tezos-wasmer
  112. tgls >= "0.8.3"
  113. torch
  114. tsdl >= "0.8.1"
  115. tsdl-image >= "0.3.0"
  116. tsdl-mixer
  117. tsdl-ttf >= "0.3"
  118. unix-errno >= "0.4.1" & < "0.5.0" | >= "0.6.0"
  119. unix-fcntl >= "0.3.3"
  120. unix-sys-resource
  121. unix-sys-stat
  122. unix-time
  123. unix-type-representations >= "0.1.1"
  124. wasmer
  125. wasmtime
  126. xxhash
  127. yaml
  128. yara
  129. yices2_bindings
  130. zstandard
  131. zstd >= "0.3"