kireji
v0.10.0
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 can build and serve web apps and multi-origin web ecosystems. It stores its runtime state in its routing system, achieving the information-theoretic lower bound of data compression. This enables 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 | EcosystemAn example ecosystem demonstrating the project
Usage
Note: This framework is currently in alpha. Expect breaking changes with each version. Check out the Demo Ecosystem to see a live project that uses this framework. Check back later to see if the framework has advanced into beta.
# 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.
