Anonymous avatar Anonymous committed 5e93a04

add doc

Comments (0)

Files changed (2)

+go-ffi
+======
+
+The ``ffi`` package wraps the ``libffi`` ``C`` library (and ``dlopen/dlclose``) to provide an easy way to call arbitrary functions from ``Go``.
+
+Installation
+------------
+
+``ffi`` is go-get-able::
+
+  $ go get bitbucket.org/binet/go-ffi/pkg/ffi
+
+
+Example
+-------
+
+::
+
+  // dl-open a library: here, libm on macosx
+  lib, err := ffi.NewLibrary("libm.dylib")
+  handle_err(err)
+  
+  // get a handle to 'cos', with the correct signature
+  cos, err := lib.Fct("cos", ffi.Double, []Type{ffi.Double})
+  handle_err(err)
+
+  // call it
+  out := cos(0.).Float()
+  println("cos(0.)=", out)
+
+
+Limitations/TODO
+-----------------
+
+- no check is performed b/w what the user provides as a signature and the "real" signature
+
+- it would be handy to just provide the name of the library (ie: "m") instead of its filename (ie: "libm.dylib")
+
+- it would be handy to use some tool to automatically infer the "real" function signature
+
+- it would be handy to also handle structs
+
+
+Documentation
+-------------
+
+http://go.pkgdoc.org/bitbucket.org/binet/go-ffi/pkg/ffi
+
+// ffi provides an easy way to call into C code using the 
+// libffi Foreign Function Interface library
+package ffi
+
+// EOF
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.