package ctypes

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

Install

Dune 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. 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. 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. mmdb
  43. mpg123
  44. netlink
  45. ocephes
  46. opasswd
  47. opencc < "transition"
  48. opencc0
  49. opencc1
  50. opencc1_1
  51. orocksdb
  52. osx-acl
  53. osx-attr
  54. osx-cf
  55. osx-fsevents
  56. osx-membership
  57. osx-mount
  58. osx-secure-transport
  59. osx-xattr
  60. owl < "0.9.0"
  61. pari
  62. pari-bindings
  63. pci
  64. pg_query
  65. pkcs11-driver
  66. pkcs11-rev
  67. portaudio_c_bindings
  68. portmidi
  69. posix-base
  70. posix-bindings < "3"
  71. posix-getopt
  72. posix-math2
  73. posix-signal
  74. posix-socket
  75. posix-socket-unix
  76. posix-time2
  77. posix-types
  78. posix-uname
  79. ppx_cstubs >= "0.2.1"
  80. py
  81. qcstm >= "0.1.1"
  82. quickjs
  83. raygui
  84. raylib
  85. reed-solomon-erasure
  86. sanlock
  87. sarek
  88. sattools
  89. sodium
  90. spin >= "0.8.0"
  91. spoc
  92. sys-socket
  93. sys-socket-unix
  94. tensorflow
  95. tgls < "0.9.0"
  96. torch < "v0.16.0"
  97. tsdl < "1.1.0"
  98. tsdl-image
  99. tsdl-mixer
  100. tsdl-ttf
  101. unix-errno >= "0.4.1"
  102. unix-sys-resource
  103. unix-sys-stat
  104. unix-time
  105. unix-type-representations
  106. uring-trace
  107. wasmer
  108. wasmtime
  109. xedbindings
  110. xxhash
  111. yaml
  112. yara
  113. yices2_bindings
  114. zstandard < "v0.14.0"
  115. zstd
OCaml

Innovation. Community. Security.