TECH

WHAT N2O REALLY IS?

N2O is a formal philosophy and software engineering exercise. It stricts you to be minimal and concise while remains functional and complete. It's a kind of purity discipline in software development. The application of the N2O method is modern web development: JavaScript, server-side DOM updates, binary protocols. N2O teaches how to write minimal and robust software.

Client Tier 3 —(JavaScript、Lua):

N2O.JS CLIENT

ECMAScript client infrastructure for N2O full-stack specification.

  • UTF-8.JS — UTF-8 serialization
  • IEEE-754.JS — Real Number Format serialization
  • BERT.JS — Binary Erlang Term Format serialization
  • N2O.JS — N2O/WebSocket JavaScript Client Loop
  • MQ.JS — N2O/MQTT JavaScript Client Loop
  • NITRO.JS — NITRO/JavaScript bindings of DOM sources
  • VALIDATION.JS — NITRO/JavaScript DOM sources validation

Server Tier 2 —(Erlang、Elixir):

SYNRC ERLANG N2O.DEV

These repos brought us money.


O7 ELIXIR

These repos was requested by Elixir community.

  • o7/sample — SAMPLE 1.1.1 Simple Chat with File Upload
  • o7/n2o — N2O 7.12.0 Cowboy-nased WebSocket Server
  • o7/kvx — KVS 7.11.5 Abstract Chain Database
  • o7/bpe — BPE 5.12.0 Business Process Engine
  • o7/nitro — NITRO 5.12.4 Nitrogen Web Framework

Server Tier 1 — (SML、Haskell、F#、Rust):

O1 STANDARD ML

This is first System-F implementation for SML/NJ and MLton.

  • o1/n2o — N2O 0.11 WebSocket Server
  • o1/nitro — NITRO 0.11 Nitrogen Web Framework

O3 HASKELL

This is second System-F implementation.

  • o3/n2o — N2O 0.11 WebSocket Server
  • o3/nitro — NITRO 0.11 Nitrogen Web Framework
  • o3/sample — SAMPLE 0.11 Simple Sample

O61 F#

This is third System-F implementation.

  • o61/ws — WS 1.0 WebSocket Server
  • o61/etf — ETF 1.0 Erlang Term Format Serializer
  • o61/nitro — NITRO 1.0 Nitrogen Web Framework

O83 RUST

This is proof-of-concept of formal CPS interpreter with SMP runtime.

Server Tier 0 — (Coq、Agda、Lean):

O89 LEAN4

This is LEAN 4 N2O full-stack.



O29 COQ

Coq.io based system-level Coq programming.

HEART ADVICE

Each language, N2O TECH is implemented in, should embed its philosophy most naturally and compact. If some layer between the base library of a language is needed, it could be provided, but it should be reduced to zero if possible. In some cases, some parts of a base library could be replaced with better replacement. N2O should provide client companion library usually implemented in a different set of client languages: JavaScript, Swift, Kotlin. If you did everything right, N2O should not be more than 500 LOC in any language.

LEGEND:

  • Client Tier 3:(JavaScript、Lua)
  • Client Tier 2:(Swift、Kotlin、TypeScript)
  • Client Tier 1:(UrWeb、OCaml)
  • Client Tier 0:(Formality)
  • Server Tier 3:(PHP、Python、Perl、Ruby)
  • Server Tier 2:(Erlang、Elixir)
  • Server Tier 1:(Standard ML、Haskell、F#、Rust)
  • Server Tier 0:(Coq、Agda、Lean)