opam-version: "2.0"
maintainer: "yallop@gmail.com"
homepage: "https://github.com/yallop/ocaml-memcpy"
dev-repo: "git+http://github.com/yallop/ocaml-memcpy.git"
bug-reports: "http://github.com/yallop/ocaml-memcpy/issues"
license: "MIT"
build: [
  [make]
  [make "test"] {with-test}
]
install: [[make "install"]]
remove: [["ocamlfind" "remove" "memcpy"]]
depends: [
  "ocaml" {>= "4.01.0"}
  "ctypes" {>= "0.4.0" & < "0.12.0"}
  "ounit" {with-test}
  "ocamlfind" {build}
  "ocamlbuild" {build}
]
tags: ["org:mirage"]
synopsis: "Safe and efficient copying between blocks of memory."
description: """
There are several ways of storing and accessing blocks of memory in an OCaml program, including

* bytes and string values for mutable and immutable strings that reside in the OCaml heap
* bigarray values for reference-counted blocks that reside in the OCaml heaps
* Ctypes ptr values that can be used to address arbitrary addresses using typed descriptions of the memory layout.
* Ctypes array values that provide bounds-checked access to ptr-addressed memory.

The Memcpy module provides functions for safely and efficiently copying blocks of memory between these different representations."""
authors: "yallop@gmail.com"
flags: light-uninstall
url {
  src: "https://github.com/yallop/ocaml-memcpy/archive/0.2.0.tar.gz"
  checksum: "md5=5065f478cbb3cfda54f1231abaf9c0b1"
}
