package ctypes

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

Innovation. Community. Security.