{"_id":"node-ffi","_rev":"27773","name":"node-ffi","description":"A foreign function interface (FFI) for Node.js","dist-tags":{"latest":"0.5.7"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"time":{"modified":"2021-06-03T10:03:59.000Z","created":"2011-04-28T17:19:08.239Z","0.5.7":"2013-03-31T21:54:41.172Z","0.5.6":"2013-03-31T21:50:01.325Z","0.5.5":"2012-06-27T03:50:48.199Z","0.5.4":"2012-05-25T17:54:05.621Z","0.5.3":"2012-04-22T17:28:51.482Z","0.5.2":"2012-04-15T23:49:04.206Z","0.5.1-1":"2012-04-07T19:36:06.888Z","0.5.1":"2012-04-07T19:18:32.931Z","0.5.0":"2012-01-12T18:02:12.905Z","0.4.2":"2011-11-07T17:24:30.402Z","0.4.1":"2011-09-29T03:32:59.545Z","0.4.0":"2011-09-19T18:17:28.788Z","0.3.2":"2011-09-17T05:10:39.950Z","0.3.1":"2011-09-16T03:36:40.426Z","0.3.0":"2011-09-07T04:10:11.917Z","0.2.2":"2011-08-23T18:20:43.456Z","0.1.1":"2011-04-28T17:19:08.239Z","0.2.0":"2011-04-28T17:19:08.239Z","0.2.1":"2011-04-28T17:19:08.239Z","0.1.2":"2011-04-28T17:19:08.239Z"},"users":{"tommyzzm":true,"yakun.cyk":true,"goatandsheep":true,"cocopas":true,"monolithed":true},"author":{"name":"Rick Branson"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"versions":{"0.5.7":{"name":"node-ffi","version":"0.5.7","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"gypfile":true,"readmeFilename":"README.md","_id":"node-ffi@0.5.7","dist":{"shasum":"c80f7c4bc7912f4f4c601a7a340c3c09b6834ece","size":1467221,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.5.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.5.7.tgz"},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1364766881172,"_cnpm_publish_time":1364766881172,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.5.6":{"name":"node-ffi","version":"0.5.6","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"gypfile":true,"readmeFilename":"README.md","_id":"node-ffi@0.5.6","dist":{"shasum":"d5de187f3ec5a36583ac990f9fcb7d2a8c30eadb","size":1467207,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.5.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.5.6.tgz"},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1364766601325,"_cnpm_publish_time":1364766601325,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.5.5":{"name":"node-ffi","version":"0.5.5","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"gypfile":true,"_id":"node-ffi@0.5.5","dist":{"shasum":"113e310d883dc737ef406d71167a5984cbc0e2cd","size":1472375,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.5.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.5.5.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1340769048199,"_cnpm_publish_time":1340769048199,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.5.4":{"name":"node-ffi","version":"0.5.4","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"_id":"node-ffi@0.5.4","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.18","_nodeVersion":"v0.6.18","_defaultsLoaded":true,"dist":{"shasum":"73e7fe47affa11912700b7e3f6f0170b8ae56356","size":1472354,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.5.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.5.4.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1337968445621,"_cnpm_publish_time":1337968445621,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.5.3":{"name":"node-ffi","version":"0.5.3","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"_id":"node-ffi@0.5.3","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.7.8","_defaultsLoaded":true,"dist":{"shasum":"2079c9a035326f9acee5a471d59f5459343c0a9c","size":1472676,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.5.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.5.3.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1335115731482,"_cnpm_publish_time":1335115731482,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.5.2":{"name":"node-ffi","version":"0.5.2","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"_id":"node-ffi@0.5.2","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.7.7","_defaultsLoaded":true,"dist":{"shasum":"c02ad84da27133be851a321a348729f0d14fd8f0","size":1717794,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.5.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.5.2.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1334533744206,"_cnpm_publish_time":1334533744206,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.5.1-1":{"name":"node-ffi","version":"0.5.1-1","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"_id":"node-ffi@0.5.1-1","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.10","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"591794d420a07f4834e5cec0b653711157178c4f","size":1716527,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.5.1-1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.5.1-1.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1333827366888,"_cnpm_publish_time":1333827366888,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.5.1":{"name":"node-ffi","version":"0.5.1","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","dependencies":{"bindings":"*"},"devDependencies":{"expect.js":"*","mocha":">= 0.10.x"},"scripts":{"test":"mocha -gc --reporter spec","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"tootallnate","email":"nathan@tootallnate.net"},"_id":"node-ffi@0.5.1","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.10","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"c0b63796c9a0355c59377429b15f5400a4cb8126","size":317675,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.5.1.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1333826312931,"_cnpm_publish_time":1333826312931,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.5.0":{"name":"node-ffi","version":"0.5.0","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.6.0"},"main":"./lib/ffi","devDependencies":{"expect.js":"*","mocha":"*"},"scripts":{"test":"node --expose-gc ./node_modules/mocha/bin/_mocha"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"rbranson","email":"rick@diodeware.com"},"_id":"node-ffi@0.5.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-beta-10","_nodeVersion":"v0.6.7","_defaultsLoaded":true,"dist":{"shasum":"aada5ba82a754fba489561ea8a3ffab6cb9b6830","size":278647,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.5.0.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1326391332905,"_cnpm_publish_time":1326391332905,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.4.2":{"name":"node-ffi","version":"0.4.2","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmUser":{"name":"rbranson","email":"rick@diodeware.com"},"_id":"node-ffi@0.4.2","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"84bf2f7327b508f8c24062558b67811fa834b522","size":30720,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.4.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.4.2.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1320686670402,"_cnpm_publish_time":1320686670402,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.4.1":{"name":"node-ffi","version":"0.4.1","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.4.1/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.4.1","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"38e3ca8de8e7d4f8909787e695626aeda519faa5","size":25436,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.4.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.4.1.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1317267179545,"_cnpm_publish_time":1317267179545,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.4.0":{"name":"node-ffi","version":"0.4.0","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.4.0/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.4.0","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"aaf6f11bc14c8465cf5f3b18f78c4872418e8039","size":25092,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.4.0.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1316456248788,"_cnpm_publish_time":1316456248788,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.3.2":{"name":"node-ffi","version":"0.3.2","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.3.2/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.3.2","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"828988b5fb3ce722dcef201c062465f205e84d43","size":24146,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.3.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.3.2.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1316236239950,"_cnpm_publish_time":1316236239950,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.3.1":{"name":"node-ffi","version":"0.3.1","author":{"name":"Rick Branson"},"contributors":[{"name":"Nathan Rajlich","email":"nathan@tootallnate.net","url":"http://tootallnate.net"}],"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.3.1/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.3.1","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"e389bbb0d07d35650edc557585de2b6b34f367f4","size":61594,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.3.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.3.1.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1316144200426,"_cnpm_publish_time":1316144200426,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.3.0":{"name":"node-ffi","version":"0.3.0","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.3.0/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.3.0","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"84a34021d39dedfa8c0704236d0d9f68182affaa","size":61564,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.3.0.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1315368611917,"_cnpm_publish_time":1315368611917,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.2.2":{"name":"node-ffi","version":"0.2.2","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_npmJsonOpts":{"file":"/Users/rbranson/.npm/node-ffi/0.2.2/package/package.json","contributors":false,"serverjs":false,"wscript":true},"_id":"node-ffi@0.2.2","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.26","_nodeVersion":"v0.4.11","_defaultsLoaded":true,"dist":{"shasum":"d7117e929bf1381785465db4330a427f95478ec1","size":59725,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.2.2.tgz"},"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"directories":{},"publish_time":1314123643456,"_cnpm_publish_time":1314123643456,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.1.1":{"name":"node-ffi","version":"0.1.1","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.2.0"},"main":"ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test.js"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"mail":"","web":"http://github.com/rbranson/node-ffi/issues"},"_id":"node-ffi@0.1.1","_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"shasum":"d83bb9a20049f96a25b9d87220c2d445f6079606","size":13952,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.1.1.tgz"},"directories":{},"publish_time":1304011148239,"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_cnpm_publish_time":1304011148239,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.2.0":{"name":"node-ffi","version":"0.2.0","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.2.0"},"modules":{"index":"./lib/ffi"},"scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"mail":"","web":"http://github.com/rbranson/node-ffi/issues"},"_id":"node-ffi@0.2.0","_nodeSupported":true,"_npmVersion":"0.2.3-6","_nodeVersion":"v0.2.5","dist":{"shasum":"f741e0a1c65caa37a1a973f3fa99e5c0a55fcb11","size":21465,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.2.0.tgz"},"directories":{},"publish_time":1304011148239,"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_cnpm_publish_time":1304011148239,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.2.1":{"name":"node-ffi","version":"0.2.1","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.4.0"},"main":"./lib/ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test/test.js"},"repository":{"type":"git","url":"git://github.com/rbranson/node-ffi.git"},"bugs":{"url":"http://github.com/rbranson/node-ffi/issues"},"_id":"node-ffi@0.2.1","_engineSupported":true,"_npmVersion":"0.3.18","_nodeVersion":"v0.4.7","directories":{"lib":"./lib","doc":"./doc"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"e86935cda619e29d45a17bc59842bdeaaac6b088","size":22393,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.2.1.tgz"},"publish_time":1304011148239,"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_cnpm_publish_time":1304011148239,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false},"0.1.2":{"name":"node-ffi","version":"0.1.2","author":{"name":"Rick Branson"},"description":"A foreign function interface (FFI) for Node.js","homepage":"http://github.com/rbranson/node-ffi","engines":{"node":">=0.2.0"},"main":"node-ffi","scripts":{"preinstall":"node-waf configure build","preuninstall":"node-waf clean","test":"node test.js"},"repository":{"type":"git","url":"http://github.com/rbranson/node-ffi.git"},"bugs":{"mail":"","web":"http://github.com/rbranson/node-ffi/issues"},"_id":"node-ffi@0.1.2","_nodeSupported":true,"_npmVersion":"0.2.7-2","_nodeVersion":"v0.3.1-pre","dist":{"shasum":"091f2d40c5050334f32f66fafd544768cdee9184","size":13978,"noattachment":false,"key":"/node-ffi/-/node-ffi-0.1.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/node-ffi/download/node-ffi-0.1.2.tgz"},"directories":{},"publish_time":1304011148239,"maintainers":[{"name":"rbranson","email":"rick@diodeware.com"},{"name":"tootallnate","email":"nathan@tootallnate.net"}],"_cnpm_publish_time":1304011148239,"deprecated":"Use the 'ffi' package instead. See https://github.com/rbranson/node-ffi/wiki/API-changes-from-v0.x-to-v1.x","_hasShrinkwrap":false}},"readme":"node-ffi\n========\n### Node.js Foreign Function Interface [![Build Status](https://secure.travis-ci.org/rbranson/node-ffi.png)](http://travis-ci.org/rbranson/node-ffi)\n\n`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.\n\nIt also simplifies the augmentation of node.js with C code as it takes care of handling the translation of types across JavaScript and C, which can add reams of boilerplate code to your otherwise simple C. See the `example/factorial` for an example of this use case.\n\n**WARNING**: node-ffi assumes you know what you're doing. 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.\n\n# EXAMPLE\n\n``` js\nvar ffi = require(\"node-ffi\");\n\nvar libm = new ffi.Library(\"libm\", { \"ceil\": [ \"double\", [ \"double\" ] ] });\nlibm.ceil(1.5); // 2\n\n// You can also access just functions in the current process by passing a null\nvar current = new ffi.Library(null, { \"atoi\": [ \"int32\", [ \"string\" ] ] });\ncurrent.atoi(\"1234\"); // 1234\n```\n\n# REQUIREMENTS\n\n * Linux, OS X, Windows, or Solaris.\n * `libffi` comes bundled with node-ffi, it does not need to be installed on your system.\n * The current version is tested to run on node 0.6.x.\n * If you need node 0.4.x support, use the `0.4` branch of node-ffi.\n\n# NPM INSTALL\n\n``` bash\n$ npm install node-ffi\n```\n\nMost popular operating systems have a pre-compiled binary that comes along with node-ffi, so most of the time you will not need to compile anything! (Unless of course you want to, then see below).\n\n# SOURCE INSTALL / MANUAL COMPILATION\n\nTo compile from source it's easiest to use\n[`node-gyp`](https://github.com/TooTallNate/node-gyp):\n\n``` bash\n$ npm install -g node-gyp\n```\n\nNow you can compile `node-ffi`:\n\n``` bash\n$ git clone git://github.com/rbranson/node-ffi.git\n$ cd node-ffi\n$ node-gyp configure build\n```\n\n# TYPES\n\n    int8        Signed 8-bit Integer\n    uint8       Unsigned 8-bit Integer\n    int16       Signed 16-bit Integer\n    uint16      Unsigned 16-bit Integer\n    int32       Signed 32-bit Integer\n    uint32      Unsigned 32-bit Integer\n    int64       Signed 64-bit Integer\n    uint64      Unsigned 64-bit Integer\n    float       Single Precision Floating Point Number (float)\n    double      Double Precision Floating Point Number (double)\n    pointer     Pointer Type\n    string      Null-Terminated String (char *)\n\nIn addition to the basic types, there are type aliases for common C types.\n\n    byte        unsigned char\n    char        char\n    uchar       unsigned char\n    short       short\n    ushort      unsigned short\n    int         int\n    uint        unsigned int\n    long        long\n    ulong       unsigned long\n    longlong    long\n    ulonglong   unsigned long long\n    size_t      platform-dependent, usually pointer size\n\n# V8 and 64-bit Types\n\nInternally, V8 stores integers that will fit into a 32-bit space in a 32-bit integer, and those that fall outside of this get put into double-precision floating point numbers. This is problematic because FP numbers are imprecise. To get around this, the methods in node-ffi that deal with 64-bit integers return strings and can accept strings as parameters.\n\n# Call Overhead\n\nThere is non-trivial overhead associated with FFI calls. Comparing a hard-coded binding version of `strtoul()` to an FFI version of `strtoul()` shows that the native hard-coded binding is 5x faster. So don't just use the C version of a function just because it's faster. There's a significant cost in FFI calls, so make them worth it.\n\n# LICENSE\n\nMIT License. See the `LICENSE` file.\n\n","_attachments":{},"readmeFilename":"README.md","homepage":"http://github.com/rbranson/node-ffi","bugs":{"url":"http://github.com/rbranson/node-ffi/issues"}}