0.6.55 • Published 7 years ago

adone v0.6.55

Weekly downloads
4
License
Apache-2.0
Repository
github
Last release
7 years ago

ADONE: the generalized core of 'cyber-fractal systems' infrastructure

Note: Project is in active development and not production ready yet.

ADONE (AllDONE) is a multpurpose Node.js-platform, consisting of:

  • Glosses - constantly developing library code, divided into namespaces.
  • FAST (Filesystem Automation Streaming Templates/Transforms) - gulp-like streaming system, extended through transfroms (vinyl-streams).
  • Shani - A full-featured BDD/TDD testing framework.
  • Omnitron - service-oriented execution environment, with netron as the core.
  • Cli - common cli-utility, extendable through cli-subsystems.

ADONE embodies most of the Agile and DevOps ideas, and can be used in all cycles of developing Node.js-projects and not only (design, development, testing, automation, balancing, monitoring, maintenance, etc.).

ADONE is an attempt to implement the concept of fractality with the assumed topology:

Installation

Linux, MacOS, FreeBSD

Download and install avm:

$ curl -L https://adone.io/dist/avm.sh | sudo bash -s install

Install ADONE:

$ sudo avm adone install latest

Update existing ADONE:

$ sudo avm adone update

You can read more at avm page.

Windows

Not ready yet.

Usage

ADONE CLI is a built-in command-line utility, the functionality of which extended through subsystems. ADONE comes with following subsystems:

  • project - command interface for initializing, building and deploying projects.
  • shani - command interface for running tests.
  • bench - command interface for benchmarking.
  • omnitron - command interface for Omnitron.

ADONE CLI has detailed help for each subsystem and sub-commands:

$ adone --help
$ adone <command> --help
$ adone <command> <subcommand> [<subsubcommand>, ...] --help

To create a simple adone-script run:

$ adone project generate miniapp <name>

If you want the script immediately open in your favorite editor, then you can use the --editor option:

$ adone project generate miniapp <filename> --editor 'code -n'

This will create adone mini-appliation, run it using:

$ adone ./<filename>

Note: You can use any ES6/ES7 features, adone automatically transpile code and run it.

To initialize adone web-application with angular4 as frontend and netron as backend communication engine, use:

$ sudo npm i -g @angular/cli@latest
$ adone project new webapplication <project_name> --frontend ng --netron --editor 'code -n'
$ cd <project_name>

Read instructions in the generated project's README.md.

Features

  • Latest features of JavaScript (ES6, ES7, ...).
  • High quality managable code as the result of automated testing and a strict coding standard (which assumes that the developer must understand what he is doing).
  • Maximum performance and lack of code redundancy due to lack of npm-dependencies and built-in lazify-mechanism.
  • High stability and fault tolerance due to the use of its own executive ecosystem.
  • Adaptability expressed through the ability to scale and ease maintenance.
  • Strict system hierarchy and the existence of self-similarity at all levels, implemented through the use of a single code base, the same paradigms and same architectural principles.
  • Multipurpose use (WEB, IoT, Rototics, Automation, ...).

What about ADONE codebase and third-party code?

One of the primary goal of ADONE is self-sufficiency and full support of JavaScript async/await and other ES-features. We want ADONE to be the most complete and strongest codebase, using which you can develop absolutely any projects. We abandoned third-party dependencies and the use of npm-ecosystem for the following reasons:

  • Lack of a common coding standard in different modules.
  • Most of the code is written using old JavaScript features.
  • Many projects are not supported by the authors properly and in accordance with the requirements that we constantly improve.
  • Redundancy of the npm-ecosystem through long chains of dependencies between projects.
  • Many libraries of the same type gives rise to uncertainty in the choice of a tool for solving a problem.
  • Lack of control, which is required to achieve our goals within the project.
  • Insufficient control of the security of npm-modules, which can lead to disastrous consequences in any kind of environment.

Therefore, in most cases, instead of developing from scratch we carefully select the code from existing Node.js projects that are written by talented developers and great teams and therefore satisfy the highest standards of quality and performance. On the one hand this is a very meaningless work, but on the other hand we carefully analyse and make serious refactoring of the code. Often we detect errors, fix them and add more tests. Some code remains API-compatible, some partially, and in some cases we completely reimplement codebase.

We are not crazy - we are perfectionists.

Production ready report

Glosses

NamespaceDescriptionStatusDocs
adoneCommon namespaceReady-
applicationReusable application framework (adone-applications entry point)Ready (maintenance, need feedback)-
archiveImplementation of archiversReady (maintenance, need feedback)-
assertionImplementation of assertion utilitesStable-
collectionImplementation of common collectionsReady (maintenance, need feedback)-
compressorImplementation of different compressorsReady (maintenance, need feedback)-
configurationImplementation of configurationsReady (maintenance, need feedback)-
coreImplementation of async streaming system and common transformsReady (maintenance, need feedback)-
cryptoCryptography stuffIn-progress-
cuiConsole UIIn-progress-
dataImplementation of common data serializersReady (maintenance, need feedback)-
databaseDatabases stuffReady (maintenance, need feedback)-
datetimeDatetime stuffStable-
diffDiff stuffStable-
fastImplementation of Filesystem Automation Streaming Templates/TransformsReady (maintenance, need feedback)-
fsFily system stuffStable-
geoipGeoip stuffReady (maintenance, need feedback)-
hardwareHardware (IoT) stuffIn-progress-
isImplementation of predicatesStable-
jsJS compiler (babel)Stable-
mathMath stuffIn-progress-
metaMeta stuff (most of code for internal purposes)In-progress-
metricsUtilites for obtaining different system & hardware metricsIn-progress-
nativeNode.js C++ addonsReady (need refactoring)-
netNetwork stuffReady (maintenance, need feedback)-
netronImplementation of NetronReady (maintenance, need feedback)-
netscanNetwork scanning stuffIn-progress-
notifierSystem notifierReady (maintenance, need feedback)-
omnitronImplementation of OmnitronIn-progress-
promiseUseful promise utilitesStable-
punycodeImplementation of PunycodeStable-
regexCoomon regular expressionsStable-
schemaJSON schema validationReady (maintenance, need feedback)-
semverImplementation of semverReady (need refactoring)-
shaniImplementation of a full-featured BDD/TDD testing frameworkStable-
shellShell-utilitesIn-progress-
sourcemapImplementation of sourcemapsStable-
specterUnified system for IT automationIn-progress-
stdAssigned Node.JS standard modulesStable-
streamStreams stuffIn-progress-
systemSome system utilites (exec, shell, ...)In-progress-
templatingTemplating enginesReady (maintenance, need feedback)-
terminalCommon terminal stuffReady (need refactoring & feedback)-
textImplementation of common text-transformation utilitesReady (maintenance, need feedback)-
timingTimings and perfomance countingIn-progress-
utilImplementation of common utilitesReady (maintenance, need feedback)-
vaultImplementation of vaultsReady (maintenance, need feedback)-
vcsVCS clients (git, ...)Ready (maintenance, need feedback)-
vendorThird-party libraries (lodash, banchmark.js, ...)Stable-
virtVirtualization stuffIn-progress-
xCommon exceptionsStable-

Omnitron

ContextDescriptionStatusDocs
dbSimple datastoreIn-progress-
pmFeature-rich Process ManagerIn-progress-
authSimple Authorization ManagementIn-progress-
tmFeature-rich Task ManagerIn-progress--
shellRemote shellIn-progress-
hardwareHardware metricsIn-progress-
systemSystem metricsIn-progress-
vaultsVaults managementIn-progress-

Cli

SubsystemDescriptionStatusDocs
projectCommand line interface for project managentIn-progress-
omnitronCommand line interface for OmnitronIn-progress-
shaniCommand line interface for ShaniReady (maintenance, need feedback)-
benchCommand line interface for benchmarkingReady (maintenance, need feedback)--
0.6.55

7 years ago

0.6.54-3

7 years ago

0.6.54-2

7 years ago

0.6.54-1

7 years ago

0.6.54

7 years ago

0.6.53

7 years ago

0.6.52-0

7 years ago

0.6.52

7 years ago

0.0.1

7 years ago