package ctypes

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

Install

Dune Dependency

Authors

Maintainers

Sources

0.17.1.tar.gz
sha256=41673c2eb93ca99ed3de183bef3e6b436c67a0d902b110be5da158aad922a7e9
md5=508ea062105518c14fd516aa2ea9db5e

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: 28 Feb 2020

Dependencies (4)

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

Innovation. Community. Security.