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 (8)

  1. bigarray-compat
  2. conf-ncurses with-test
  3. ounit with-test
  4. ctypes-foreign with-test
  5. lwt with-test & >= "3.2.0"
  6. ocamlfind build
  7. integers >= "0.3.0"
  8. ocaml >= "4.02.3"

Reverse Dependencies (125)

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

Conflicts (3)

  1. ocaml-option-nnpchecker
  2. base-nnp
  3. mirage-xen >= "6.0.0"
Combinators for binding to C libraries without writing any C

Install

Authors

Maintainers

Sources

0.18.0.tar.gz
md5=5d9ef3790fda7cd97a8cec08be4b5b61