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. portmidi < "0.4"
  70. posix-base
  71. posix-bindings < "3"
  72. posix-getopt
  73. posix-math2
  74. posix-signal
  75. posix-socket
  76. posix-socket-unix
  77. posix-time2
  78. posix-types
  79. posix-uname
  80. ppx_cstubs
  81. py
  82. qcstm >= "0.1.1"
  83. quickjs
  84. raygui < "1.5.1"
  85. raylib < "1.5.1"
  86. reed-solomon-erasure
  87. sanlock
  88. sarek
  89. sattools
  90. sodium
  91. spin >= "0.8.0"
  92. spoc
  93. sys-socket
  94. sys-socket-unix
  95. tensorflow
  96. tgls < "0.9.0"
  97. torch < "v0.16.0"
  98. tsdl < "1.1.0"
  99. tsdl-image
  100. tsdl-mixer
  101. tsdl-ttf
  102. unix-errno >= "0.4.1"
  103. unix-sys-resource
  104. unix-sys-stat
  105. unix-time
  106. unix-type-representations
  107. uring-trace
  108. wasmer
  109. wasmtime
  110. xedbindings
  111. xxhash
  112. yaml
  113. yara
  114. yices2_bindings
  115. zstandard < "v0.14.0"
  116. zstd