Skip to content

Instantly share code, notes, and snippets.

@creationix
Created April 23, 2015 18:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save creationix/101f70005bde6cc7d747 to your computer and use it in GitHub Desktop.
Save creationix/101f70005bde6cc7d747 to your computer and use it in GitHub Desktop.

Title

Building a More Flexible Node.JS

Abstract

Node.JS gives you an easy to use scripting language with the power of non-blocking I/O and systems level APIs. But it's core is very prescriptive about using callbacks, streams, and event emitters.

Have you ever wished you could use the core power of node without buying into the conventions?

This talk will explain what we've learned over the past from the node.js and luvit.io projects and how these lessons can be applied to build a better platform using a simple recipe:

  • Raw direct libuv bindings to the VM of choice (V8, SpiderMonkey, JavaScript Core, Duktape, Luajit, etc)
  • C layer with zip asset bundling, openssl, vm, and libuv bindings.
  • Set of individual pure script libraries to implement core APIs.
  • Package Manager to make working with many packages a breeze. (could be git submodule based)

The luvit project (node in lua) recently was rewritten with this new structure. This talk will show how this new way of splitting the project into layers makes it easier to work with and encourages more core contributions as well as customized forks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment