package ctypes

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

0.14.0.tar.gz
sha256=e97aea533b3ce254747dcec39c92f0ca74859b9fe29533d2f391598105693a7f
md5=57875f5e5986ca6004c356d77a3b31b5

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: 17 Apr 2018

Dependencies (5)

  1. conf-pkg-config build
  2. ocamlfind build
  3. integers < "0.3.0"
  4. base-bytes
  5. ocaml >= "4.01.0" & < "5.2"

Dev Dependencies (4)

  1. conf-ncurses with-test
  2. ctypes-foreign with-test
  3. ounit with-test
  4. lwt with-test & >= "2.4.7" & < "4.0.0"

  1. ahrocksdb
  2. argon2
  3. async_ssl < "v0.13.0"
  4. bimage-unix
  5. binaryen_dsl
  6. bitgenerators
  7. ceph
  8. cf
  9. checked_oint < "0.4.1"
  10. cmark
  11. cmarker
  12. ctypes-build
  13. ctypes-foreign = "0.18.0"
  14. ctypes-zarith
  15. ctypes_stubs_js
  16. cudajit
  17. directories < "0.2"
  18. dlm
  19. dune >= "3.17.2"
  20. eigen
  21. flock
  22. fsevents
  23. gccjit
  24. gdal
  25. gl-legacy
  26. gobject-introspection
  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