package ctypes

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

Install

Dune Dependency

Authors

Maintainers

Sources

0.15.1.tar.gz
sha256=8be72c0b614b8c4a6f8f29183c385cfd649e10f0e465c1c8ddcac00409f7c37e
md5=e87b2646f7597e00b8b9a1f5f8e36ee6

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: 25 Jul 2019

Dependencies (5)

  1. conf-pkg-config build
  2. ocamlfind build
  3. integers >= "0.3.0"
  4. base-bytes
  5. 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.13.0"
  5. avroc
  6. bimage-unix
  7. binaryen_dsl
  8. bitgenerators
  9. ceph
  10. cf
  11. checked_oint
  12. cmark
  13. cmarker
  14. ctypes-build
  15. ctypes-foreign = "0.18.0"
  16. ctypes-zarith
  17. ctypes_stubs_js
  18. cudajit
  19. directories < "0.2"
  20. dlm
  21. eigen
  22. eris
  23. flock
  24. fsevents
  25. gccjit
  26. gdal >= "0.3.0"
  27. gobject-introspection
  28. gr
  29. hacl-star-raw < "0.4.0"
  30. hardcaml-llvmsim >= "0.3.0"
  31. hardcaml-vpi
  32. imguiml
  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. mmdb
  49. monocypher
  50. mpg123
  51. nanomsg
  52. nebula
  53. netlink >= "0.2.1"
  54. ocephes >= "0.8.2"
  55. opasswd >= "1.0.1"
  56. opencc < "transition"
  57. opencc0
  58. opencc1
  59. opencc1_1
  60. oplay
  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 < "0.9.0"
  77. pkcs11-driver
  78. pkcs11-rev
  79. portaudio_c_bindings
  80. portmidi
  81. posix-base
  82. posix-bindings
  83. posix-getopt
  84. posix-signal
  85. posix-socket
  86. posix-socket-unix
  87. posix-time2
  88. posix-types
  89. posix-uname
  90. ppx_cstubs >= "0.2.1"
  91. protocol-9p < "0.5.1"
  92. py
  93. qcstm >= "0.1.1"
  94. quickjs
  95. raygui
  96. raylib
  97. reed-solomon-erasure
  98. sanlock
  99. sarek >= "20210823"
  100. sattools
  101. sodium >= "0.2.0" & < "0.3.0" | >= "0.6.0"
  102. spin >= "0.8.0"
  103. spoc >= "20170724"
  104. srt < "0.3.1"
  105. sys-socket
  106. sys-socket-unix
  107. tensorflow
  108. tgls >= "0.8.3"
  109. torch < "v0.16.0"
  110. tsdl >= "0.8.1" & < "1.1.0"
  111. tsdl-image
  112. tsdl-mixer
  113. tsdl-ttf
  114. unix-errno >= "0.4.1"
  115. unix-fcntl >= "0.3.3"
  116. unix-sys-resource
  117. unix-sys-stat
  118. unix-time
  119. unix-type-representations
  120. uring-trace
  121. wasmer
  122. wasmtime
  123. xedbindings
  124. xxhash
  125. yaml
  126. yara
  127. yices2_bindings
  128. zstandard < "v0.14.0"
  129. zstd >= "0.2"
OCaml

Innovation. Community. Security.