package ctypes

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

Install

dune-project
 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. argon2
  3. async_ssl < "v0.13.0"
  4. bimage-unix
  5. binaryen_dsl
  6. bitgenerators
  7. ceph
  8. cf
  9. checked_oint < "0.4.1"
  10. cmark
  11. cmarker
  12. ctypes-build
  13. ctypes-foreign = "0.18.0"
  14. ctypes-zarith
  15. ctypes_stubs_js
  16. cudajit
  17. directories < "0.2"
  18. dlm
  19. dune >= "3.17.2"
  20. eigen
  21. flock
  22. fsevents
  23. gccjit
  24. gdal
  25. gl-legacy
  26. gobject-introspection
  27. gr
  28. hacl-star-raw < "0.4.0"
  29. imguiml
  30. kqueue < "0.2.0"
  31. libdash < "0.3"
  32. libudev
  33. lilv
  34. llvm >= "3.7"
  35. lmdb < "1.0"
  36. lp-glpk
  37. lp-gurobi
  38. luv
  39. luv_unix
  40. lz4
  41. mariadb
  42. memcpy >= "0.2.1"
  43. metal
  44. mmdb
  45. mpg123
  46. netlink
  47. ocephes
  48. opasswd
  49. opencc < "transition"
  50. opencc0
  51. opencc1
  52. opencc1_1
  53. orocksdb
  54. osx-acl
  55. osx-attr
  56. osx-cf
  57. osx-fsevents
  58. osx-membership
  59. osx-mount
  60. osx-secure-transport
  61. osx-xattr
  62. owl < "0.9.0"
  63. pari
  64. pari-bindings
  65. pci
  66. pg_query
  67. pkcs11-driver
  68. pkcs11-rev
  69. portaudio_c_bindings
  70. portmidi < "0.4"
  71. posix-base < "4.0.1"
  72. posix-bindings < "3"
  73. posix-errno
  74. posix-getopt
  75. posix-math2
  76. posix-resource
  77. posix-signal
  78. posix-socket
  79. posix-socket-unix
  80. posix-stat
  81. posix-time2
  82. posix-types
  83. posix-uname
  84. posix-unistd
  85. ppx_cstubs >= "0.2.1"
  86. py
  87. qcstm >= "0.1.1"
  88. quickjs
  89. raygui < "1.5.1"
  90. raylib < "1.5.1"
  91. reed-solomon-erasure
  92. sanlock
  93. sarek
  94. sattools
  95. sodium
  96. spin >= "0.8.0"
  97. spoc
  98. sys-socket
  99. sys-socket-unix
  100. tensorflow
  101. tgls < "0.9.0"
  102. torch < "v0.16.0"
  103. tsdl < "1.1.0"
  104. tsdl-image
  105. tsdl-mixer
  106. tsdl-ttf
  107. unix-errno >= "0.4.1"
  108. unix-sys-resource
  109. unix-sys-stat
  110. unix-time
  111. unix-type-representations
  112. uring-trace
  113. wasmer
  114. wasmtime
  115. xedbindings
  116. xxhash
  117. yaml
  118. yara
  119. yices2_bindings
  120. zstandard < "v0.14.0"
  121. zstd