package ctypes

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

Install

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