package ctypes

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

0.20.0.tar.gz
sha256=c97fa72722e3931c917853a5b6c69c237edbd7739e44e46ee3b1c13f2e84a87a
md5=e286bc69e536e581529f01059dd4bbb3

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: 10 Dec 2021

Dependencies (4)

  1. bigarray-compat
  2. ocamlfind build
  3. integers >= "0.3.0"
  4. ocaml >= "4.03.0" & < "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. arrayjit < "0.4.1"
  4. async_ssl >= "v0.15.0"
  5. bimage-unix
  6. binaryen_dsl
  7. bitgenerators
  8. ceph
  9. cf
  10. checked_oint < "0.4.1"
  11. cmark
  12. cmarker
  13. ctypes-build
  14. ctypes-foreign = "0.18.0"
  15. ctypes-zarith
  16. ctypes_stubs_js
  17. cudajit
  18. decompress >= "1.3.0" & < "1.5.3"
  19. directories
  20. dlm >= "0.3.3"
  21. dune >= "3.17.2"
  22. echo
  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. hegel
  37. imguiml
  38. kqueue < "0.2.0"
  39. libdash >= "0.3"
  40. libirmin
  41. libudev
  42. lilv
  43. llvm >= "3.7"
  44. lp-glpk
  45. lp-gurobi
  46. luv
  47. luv_unix
  48. lz4
  49. mariadb
  50. memcpy >= "0.2.1"
  51. metal
  52. mmdb
  53. mpg123
  54. netlink
  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. posix-base < "4.0.1"
  78. posix-bindings < "3"
  79. posix-errno
  80. posix-getopt >= "2.0.0"
  81. posix-math2
  82. posix-resource
  83. posix-signal
  84. posix-socket
  85. posix-socket-unix
  86. posix-stat
  87. posix-time2
  88. posix-types
  89. posix-uname
  90. posix-unistd
  91. ppx_cstubs = "0.5.1" | >= "0.7.0"
  92. py >= "1.1"
  93. quickjs
  94. raygui < "1.5.1"
  95. raylib < "1.5.1"
  96. reed-solomon-erasure
  97. rfc1951 >= "1.3.0"
  98. sanlock
  99. sarek
  100. sattools
  101. sodium < "0.6.0"
  102. spin >= "0.8.0"
  103. spoc
  104. srt < "0.3.4"
  105. swipl
  106. sys-socket
  107. sys-socket-unix
  108. tensorflow
  109. tgls < "0.9.0"
  110. torch
  111. tsdl < "1.1.0"
  112. tsdl-image >= "0.3.0"
  113. tsdl-mixer
  114. tsdl-ttf >= "0.3"
  115. unix-errno >= "0.4.1" & < "0.5.0" | >= "0.6.0"
  116. unix-sys-resource
  117. unix-sys-stat
  118. unix-time
  119. unix-type-representations >= "0.1.1"
  120. uring-trace
  121. wasmer
  122. wasmtime
  123. xedbindings
  124. xxhash
  125. yaml
  126. yara
  127. yices2_bindings
  128. zstandard
  129. zstd >= "0.3"

Conflicts (2)

  1. host-system-msvc
  2. mirage-xen >= "6.0.0"