Skip to content

nesoi-org/nesoi

Repository files navigation

Nesoi

Zero-dependency Typescript framework for data-driven applications.

Logo

⚠️ This is a work-in-progress. Use it with caution.

Introduction

nesoi is a framework which makes it easy to implement data operations (crud, query, hidrate), jobs (synchronous or asynchronous), statecharts, queues, topics and controllers.

It does so through a "builder-schema-element" paradigm, where you use builders to declare schemas. Such schemas are used by the engine to build elements, which are runtime objects that perform actions inside transactions.

Builder -builds-> Schema -configures-> Element

This paradigm allows declaring modules, which groups schemas into developer-chosen scopes. Such modules are then used to declare apps, which are bundled ECMAScript (JS) applications.

modules/
    module1/
        ...elements...
    module2/
        ...elements...
apps/
    app1
    app2

When declaring an app, you plug adapters into the elements, which allows them to interact with external aspects of your application, such as databases and topics. This means the schemas are agnostic and plural, allowing adapters to be changed without friction.

A particular great feature of using adapters for data sources - buckets - is that queries can be performed accross different types of storage with a consistent syntax: NQL.

It offers a powerful engine for developing cloud or in-browser applications, and a robust plugin system for extending it's functionalities.

It also allows building and testing modules in isolation, then bundling them into different architectures.

Getting Started

About

Declarative TypeScript framework for data-driven applications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published