kireji
v0.7.3
Published
A web framework for stateful, entropy-perfect, multi-origin web applications. Currently in alpha. Expect breaking changes for version 0. Use with caution!
Maintainers
Readme
Kireji - Web Framework
Part of the Kireji Projectomnia ex una linea
The Kireji Web Framework is a reactive full-stack web framework that uses the MPHF Coordinate System and the MVC paradigm to build multi-origin web app ecosystems. It offers a routing system that achieves the information-theoretic lower bound of data compression, enabling comprehensive deep linking, session bookmarking without user accounts or local storage, peer-to-peer data sharing without uploads or accounts, and cross-origin communication without cookies or CORS.
The Kireji Project
The Kireji Project poses a question: What if we could treat every web page as a point in a unified, mathematically mapped space?
| Repo | Purpose | ---- | ------- | MPHF | Coordinate SystemA bijective coordinate system for hashing structured data | Kireji | Web Framework - ★ You are hereA reactive web framework with MPHF routing | Demo | App EcosystemAn example app ecosystem demonstrating the project
Usage
Note: This framework is currently under heavy development in early alpha. Expect large, breaking changes with each version and some awkward features. Check out the Demo App Ecosystem to see the framework in action. Check back later to see if the package has been updated.
# In an empty git repo.
npm install kireji
# To initialize an empty project:
npx kireji init
# To initialize a hello world project:
npx kireji example
# The following commands require at least one git commit to work:
# Build a local development server.
npx kireji dev
# Build a production server.
npx kireji build
# Get the project and package version info:
npx kireji version
# Get the list of commands:
npx kireji
# Or:
npx kireji helpMore documentation is coming soon about how to define components, work with the framework's premade components, and make use of the framework's premade applications (which intimately integrate with your own app and allow you to inspect it in real-time) in development builds.
Implementation
This framework uses the MPHF Coordinate System to assign a unique, gap-free coordinate to every valid point in a space constrained by its component definitions. It uses the MVC paradigm to efficiently update the DOM. It uses a packing mechanism to create single-artifact builds. It provides a library of premade components including a web server and service worker to bootstrap the development process.
Components
Components act to refine the "Total Software Space" into a manageable set of algebraically constrained, functional applications.
This refinement is designed to provide:
- Guaranteed Functionality: Ensuring every coordinate represents a stable, working application (no "one sandal, one stiletto" combinations).
- Comprehensive Deep Linking: Allowing every coordinate to be bookmarked and shared, retaining a full, multi-origin session state in the most compressed URL possible without reliance on cookies, servers, or user tracking.
- Component Encapsulation: Defining all applications as assemblies of stateful components (called parts) built on the MPHF-MVC backbone. Parts then assemble like LEGO® bricks, each assembly representing its own configuration space.
- Reactive Navigation: Ensuring navigation from one coordinate to another changes only the page elements that need to change to reflect the new position.
Namespacing
Parts are assigned a unique namespace that relates them to a web application's origin, for example:
_.com.example
_.com.example.scroller
_.com.example.www.home
_.com.example.www.blogBuilt-in Parts
The framework's main part is the root part, a global object identified by _. This part is the root of the application component hierarchy, hosting both built-in and user-defined components.
Core Components
These parts are provided by the framework to act as MVC abstracts that handle MPHF arithmetic under the hood:
_.parts.core.mix
_.parts.core.match
_.parts.core.clip
...Desktop Components
These parts are a collection of parts for bootstrapping, a Node.js server, server- and client-side rendering, a service worker and other functionality:
_
_.parts.desktop.server
_.parts.desktop.client
_.parts.desktop.worker
_.parts.desktop.addressBar
...Tech Stack
The Kireji Web Framework does not import any third-party libraries, frameworks, or packages so that it can be reasoned about end-to-end as a self-contained and self-descriptive system.
Status and License
The Kireji Web Framework is in Alpha.
The Kireji Project is in early research and development.
