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