package ctypes

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

0.18.0.tar.gz
sha256=1f30c48f4667f17ea4ab5048b9fd10d090a7fbbf4f1997eb018b656b851340a4
md5=5d9ef3790fda7cd97a8cec08be4b5b61

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: 14 Feb 2021

Dependencies (4)

  1. bigarray-compat
  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-legacy
  8. bls12-381-unix < "1.1.0"
  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. decompress >= "1.3.0" & < "1.5.3"
  20. directories
  21. dlm >= "0.3.3"
  22. dune >= "3.17.2"
  23. eigen >= "0.1.0"
  24. extism < "1.1.0"
  25. fsevents
  26. gccjit
  27. gdal >= "0.10.0"
  28. gl-legacy
  29. gobject-introspection
  30. gpiod
  31. gr
  32. guile
  33. hacl-star-raw >= "0.3.2"
  34. hardcaml_c
  35. hardcaml_verilator
  36. imguiml
  37. kqueue < "0.2.0"
  38. libdash >= "0.3"
  39. libudev
  40. lilv
  41. llvm >= "3.7"
  42. lp-glpk
  43. lp-gurobi
  44. luv
  45. luv_unix
  46. lz4
  47. mariadb
  48. memcpy >= "0.2.1"
  49. metal
  50. mmdb
  51. mpg123
  52. netlink
  53. octez-l2-libs
  54. octez-libs
  55. opasswd
  56. opencc < "transition"
  57. opencc0
  58. opencc1
  59. opencc1_1
  60. orocksdb
  61. osx-acl
  62. osx-attr
  63. osx-cf
  64. osx-fsevents
  65. osx-membership
  66. osx-mount
  67. osx-secure-transport
  68. osx-xattr
  69. owl >= "0.9.0"
  70. pari
  71. pari-bindings
  72. pci
  73. pg_query
  74. pkcs11-driver
  75. pkcs11-rev
  76. portaudio_c_bindings
  77. portmidi < "0.4"
  78. posix-base
  79. posix-bindings < "3"
  80. posix-getopt >= "2.0.0"
  81. posix-math2
  82. posix-signal
  83. posix-socket
  84. posix-socket-unix
  85. posix-time2
  86. posix-types
  87. posix-uname
  88. ppx_cstubs >= "0.5.0.1" & != "0.6.0" & != "0.6.1"
  89. py >= "1.1"
  90. quickjs
  91. raygui < "1.5.1"
  92. raylib < "1.5.1"
  93. reed-solomon-erasure
  94. rfc1951 >= "1.3.0"
  95. sanlock
  96. sarek
  97. sattools
  98. sodium < "0.6.0"
  99. spin >= "0.8.0"
  100. spoc
  101. srt < "0.3.4"
  102. swipl
  103. sys-socket
  104. sys-socket-unix
  105. tensorflow
  106. tezos-hacl
  107. tezos-hacl-glue-unix < "12.3"
  108. tezos-sapling
  109. tezos-wasmer
  110. tgls < "0.9.0"
  111. torch
  112. tsdl < "1.1.0"
  113. tsdl-image >= "0.3.0"
  114. tsdl-mixer
  115. tsdl-ttf >= "0.3"
  116. unix-errno >= "0.4.1" & < "0.5.0" | >= "0.6.0"
  117. unix-sys-resource
  118. unix-sys-stat
  119. unix-time
  120. unix-type-representations >= "0.1.1"
  121. uring-trace
  122. wasmer
  123. wasmtime
  124. xedbindings
  125. xxhash
  126. yaml
  127. yara
  128. yices2_bindings
  129. zstandard
  130. zstd >= "0.3"