ngnjs / NGN

A systems development platform. A revamped portal is coming soon at:
https://ngn.js.org
MIT License
63 stars 14 forks source link
browser data data-model deno event-driven eventemitter javascript middleware ngn nodejs queue systems web

NGN


NGN is a suite of JavaScript libraries for building systems and frameworks. Version 1.x.x was first released in 2012. Since then, the JavaScript language, runtimes, and communities have seen a continental shift. NGN 2.0.0 has been re-engineered to take advantage of modern JavaScript capabilities.

The library consists of numerous integrated ES modules, designed and tested to work together in any modern JavaScript runtime. Over 1000 combined unit tests are run against Chromium, Node.js 14+ (12+ using ES Module flag), and Deno.

  1. Core (this repo) - Live Examples on Codepen
    • Event Emitter
    • Middleware Engine
    • Custom Exceptions (Errors)
    • Ledger System (Auditing/Logging)
    • Base Class
  2. Queue
    • Parallel Task Runner
    • Sequential Task Runner
    • Evented Task Runner
  3. Network (net)
    • HTTP Client (Promise & Callback-Based)
    • Network Resource Feature
    • Enhanced URL
  4. Plugin Engine
    • Create Plugins
    • Extend Core Modules & Plugins
    • Semver Support (Dependency Declarations)

In addition, the following libraries are available:

We are still working on the data module, which is the most powerful, but also most complex library in NGN. The data module supports data modeling, data stores, events, indexing, has it's own query language, and is often described as a small cross-runtime database.

NGNX, the extension system, has been dropped in 2.0.0. The libraries, such as the date/time library, are being integrated directly into NGN.

Development Status

NGN 2.0.0 is currently in an alpha state. We are battle testing it with select Butler Logic clients, but we're really putting it through rigorous production testing as we build Metadoc and EnableDB on NGN 2, JET and Chassis.

NGN 2.0.0 documentation will be forthcoming, with an early release of Metadoc. In the meantime, a series of code examples are available here, on Codepen.