Skip to content

vmady/node-ffi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Node.js Foreign Function Interface

Resources

License

Stars

Watchers

Forks

Packages

No packages published