package ctypes

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

0.16.0.tar.gz
sha256=26395d60fa728ee6277573fdd74a7e82137826b531501fc2791d5db79b843350
md5=31d4f2072abd74e99ed8d70f934e3718

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: 07 Dec 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.15.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
  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. srt < "0.3.4"
  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.15.0"
  116. zstd
OCaml

Innovation. Community. Security.