package ctypes

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

Install

Dune Dependency

Authors

Maintainers

Sources

0.17.1.tar.gz
sha256=41673c2eb93ca99ed3de183bef3e6b436c67a0d902b110be5da158aad922a7e9
md5=508ea062105518c14fd516aa2ea9db5e

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: 28 Feb 2020

Dependencies (4)

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

Innovation. Community. Security.