Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Node.js Foreign Function Interface
JavaScript C++ C
Branch: async

This branch is even with substack:async

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
LICENSE
README.rdoc
_ffi.cc
_node-ffi.h
ffi.js
sqlite-example.js
test.js
wscript

README.rdoc

node-ffi

Rick Branson rick [at] diodeware [dot] com
http://github.com/rbranson/node-ffi

DESCRIPTION:

node-ffi is a Node.js addon for loading and calling dynamic libraries using pure JavaScript. It can be used to create bindings to native libraries without writing any C++ code.

WARNING: This is an experimental library with an unstable API. It's also quite unsafe, so you can pretty easily create situations where you will segfault the interpreter and unless you've got C debugger skills, you probably won't know what's going on.

EXAMPLE:

var FFI = require("ffi");

var libm = new FFI.Library("libm", { "ceil": [ "double", [ "double" ] ] });
libm.ceil(1.5); // 2

// You can also access just functions in the current process by passing a null
var current = new FFI.Library(null, { "atoi": [ "int32", [ "string" ] ] });
current.atoi("1234"); // 1234

REQUIREMENTS:

  • MacOS X or Linux.

  • You will need Node.js installed.

INSTALL:

$ git clone git://github.com/rbranson/node-ffi.git
$ cd node-ffi
$ node-waf configure build
$ node test.js
$ node-waf install

TYPES:

byte      Unsigned 8-bit Integer (unsigned char)
int8      Signed 8-bit Integer (char)
int16			Signed 16-bit Integer (short)
uint16		Unsigned 16-bit Integer (unsigned short)
int32			Signed 32-bit Integer (int)
uint32		Unsigned 32-bit Integer (unsigned int)
float			Single Precision Floating Point Number (float)
double		Double Precision Floating Point Number (double)
pointer		Pointer Type
string		Null-Terminated String (char *)

LICENSE:

See LICENSE file.

Something went wrong with that request. Please try again.