Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
vert.x - Effortless asynchronous application development for the modern web and enterprise
Java Python Groovy Ruby JavaScript Shell

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
docs
mgmt
rel-notes
src
.gitignore
.yardopts
LICENSE.txt
README.md
build.xml

README.md

Node.x

What is Node.x?

The next generation polyglot asynchronous application framework.

  • Runs on the JVM.
  • Embraces the good bits of event driven frameworks like node.js without the bad bits. Then adds some even juicier bits.
  • Everything is non-blocking.
  • Polyglot. Node.x will be usable from multiple languages: Ruby, Groovy, Java, JavaScript, Python, Clojure, Scala. Write your code in the language you choose. Leverage the power of node.x from that language.
  • Goes with the recent developments with InvokeDynamic in Java 7 and bets on the JVM being the future premier runtime for dynamic languages.
  • Enables you to create network servers or clients incredibly easily.
  • True scalability. Unlike other well-known event-driven frameworks, you can have more than one event loop per process. No more spinning up 32 instances just to utilise the cores on your server.
  • Incredibly simple concurrency model. Write your code as single threaded but watch it scale across multiple cores. No need to worry about concurrency.
  • Understands multiple network protocols out of the box including: TCP, SSL, UDP, HTTP, HTTPS, Websockets, etc.
  • Efficiently serve static files from the filesystem bypassing userspace altogether.
  • Provides an elegant api for composing asynchronous actions together. Glue together HTTP, AMQP, Redis or whatever in a few lines of code.
  • Asynchronous plugins will be provided for a wide variety of other systems and protocols including AMQP, Redis, REST, Gemfire, MongoDB, STOMP, Twitter, SMTP, JDBC, Memcached, JMS, ZeroMQ, JDBC, web frameworks, etc
  • Module manager. Install modules from a public repository. Create your own applications and push them to the repo. Creates a market for an ecosystem of node.x modules.

Jump to the examples

Take a look at some of these working Ruby examples to see the kind of things you can do with Node.x

Ruby examples

Java examples

What is the status of Node.x?

The first binary release, node.x 0.1, has been released. We aim to follow the mantra of "release early, release often"

You can find the Road-map here

What is the architecture?

Node.x core is written in Java. We then provide a thin layer in each of the JVM languages we support which allows the API to be used in each of the supported languages.

We do not expose the Java API directly in the other languages since we wish to retain the normal coding idioms for each supported language.

We don't leak Java stuff to other languages through the API.

Node.x internally uses Netty for much of the asynchronous IO.

Building from source

Instructions for building node.x from source are here

Installation and running the examples

Instructions for installing and running node.x are are here

Development and user discussions

node.x dev Google Group

FAQ

FAQ here

IRC

There's an IRC channel at irc.freenode.net#nodex if you want to drop in to chat about any user or development topics

Join us!!

There is lots to do! We are looking for contributors - both individual and corporate. Ping me twitter:@timfox, or post on the nodex-dev google group.

Something went wrong with that request. Please try again.