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

Innovation. Community. Security.