Skip to main content

A gevent-based microframework for building RESTful web services that provide AMQP interfaces.

Project description

Problem Domain

Nucleon was created to simplify the process of creating “back end services” - components that provide REST and AMQP interfaces to each other, to front-end web applications, and rarely to the end user. It is not intended to generate HTML, provide developer utilities like users/cookies/sessions, perform internationalisation, and so on - Django (or your microframework of choice) is already excellent at this.

This kind of back end service components need to be

  • Distributed - for the purposes of scalability and availablity.
  • Fast - because the back end may be performing dozens of operations for each front-end request.
  • RESTful - because it provides a universal, simple interface that works with off-the-shelf caches, load balancers, etc.
  • Not limited to REST - specifically, it should be possible to loosely couple components over AMQP.

REST is primarily useful for synchronous operations - “Do this now and hand me back the result.”

AMQP gives loose coupling between components - “Something has happened, you may want to deal with it” or “Do this as soon as possible.”

About Nucleon

Nucleon largely consists of glue between existing Python components, primarily gevent, paste, psycopg2, and an AMQP library called Puka.

It is deliberately kept simple, with as few layers of indirection as possible. This comes with limitations:

  • There is no ORM included. ORMs obfuscate what queries are actually being executed, and fail to expose the most powerful database features.
  • We don’t use any kind of database abstraction layer, and thus (so far) only PostgreSQL is supported.

For more information, check out the documentation.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for nucleon, version 0.0.1-gevent
Filename, size File type Python version Upload date Hashes
Filename, size nucleon-0.0.1-gevent.tar.gz (23.2 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page