kireji
Version:
A web framework for stateful, entropy-perfect, multi-origin web applications. Currently in alpha. Expect breaking changes for version 0. Use with caution!
80 lines (60 loc) • 7.13 kB
Markdown
# Kireji - *Web Framework*
> **<sub>Part of the Kireji Project</sub>**<br><sup><i>omnia ex una linea</i></sup>
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](https://github.com/kireji-app/mphf#readme) | [Coordinate System<br><sup>A bijective coordinate system for hashing structured data</sup>](https://github.com/kireji-app/mphf#readme)
| **Kireji** | **Web Framework - ★ You are here<br><sup>A reactive web framework with MPHF routing</sup>**
| [Demo](https://github.com/kireji-app/demo#readme) | [App Ecosystem<br><sup>An example app ecosystem demonstrating the project](https://github.com/kireji-app/demo#readme)</sup>
## Implementation
> <sub>Note: This is currently an empty placeholder for the framework that powers the [Demo App Ecosystem](https://github.com/kireji-app/demo#readme). Check back later to see if the package has been populated.</sub>
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 relating a web application's origin, for example:
```js
_.com.example
_.com.example.scroller
_.com.example.www.home
_.com.example.www.blog
```
### Built-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:
```js
_.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:
```js
_
_.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**.
[](https://www.npmjs.com/kireji)
<br>[](https://www.repostatus.org/#alpha)
<br>[](https://github.com/kireji-app/demo/commits/)
<br>[](https://github.com/kireji-app/demo)
<br>[](http://www.ejaugust.com/)
<br>[](https://github.com/kireji-app/kireji/LICENSE.md)
<br>[](https://github.com/sponsors/EJAugust)