kireji 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +152 -0
  3. package/package.json +1 -15
package/LICENSE.md ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Eric Augustinowicz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,152 @@
1
+ # kireji: Entropy-Perfect Multi-Origin Web Applications
2
+
3
+ **kireji** is a web framework that maximally compresses data models using minimal perfect hash functions (MPHFs). It achieves the information-theoretic lower bound, creating the smallest possible collision-free, duplicate-free and gap-free hashes for arbitrary data.
4
+
5
+ Any group of applications powered by kireji can have its entire group state stored in a tight place - like a single URL or even a DNS TXT record. Model data is recovered instantly from a hash and vice-versa. This gives applications deterministic, lossless deep linking, state bookmarking, historical replay and peer-to-peer sharing (via simple URL sharing) without users interacting with a central server.
6
+
7
+ ---
8
+
9
+ ## Entropy-Perfect Encoding
10
+
11
+ Each application state is assigned a unique variable-length base64 hash, derived from a bijective minimal perfect hash function. This makes them as compact and expressive as is mathematically possible.
12
+
13
+ kireji provides a compression solution that is uniquely built for the given data model and can represent every state in that model.
14
+
15
+ All kireji hashes are inherently integers (implemented using the `bigint` primative in JavaScript). Because the hash function has no gaps, no duplicates, and no collisions, it is not possible to achieve a smaller lossless hash of a given data model than this.
16
+
17
+ If there are 10,000,000,000,000,000,000,000,000,000,000,000,000,000,000 possible ways to populate your application's data model, then kireji produces a hash integer that is always between 0 and 9,999,999,999,999,999,999,999,999,999,999,999,999,999,999. kireji can then instantly hash any instance of the data model and instantly recover one from any integer in that range.
18
+
19
+ An example use-case of this is embedding rich state information in places with limited space, such as a URL or DNS TXT record, without the syntactical overhead of query parameters,JSON objects, or delimiters.
20
+
21
+ ```
22
+ https://www.ejaugust.com/0.126.3/4lb5kAsH_R0Dv_UHg/
23
+ ```
24
+
25
+ ## MVC + MPHF Architecture
26
+
27
+ kireji can also be used as a compelete front-end framework. Its minimal perfect hash function is highly reactive with a built-in event system. It instantly reflects per-component tweaks to a given model with an extensible model-view-controller (MVC) archetecture.
28
+
29
+ * Each controller is a stateful component (called a <strong>part</strong>) with its own cardinality.
30
+ * Parts assemble like LEGO® bricks, with a root part producing a hash representing its entire hierarchy.
31
+ * JavaScript's prototype chain enables compositional inheritance between parts.
32
+
33
+ ---
34
+
35
+ ## DNS-Based Namespacing
36
+
37
+ When used as a web application front-end framework, each part in a kireji model can be assigned a name that follows DNS semantics so that a web application's URL (such as [www.ejaugust.com](https://www.ejaugust.com)) can be quickly discerned from a runtime reference to one of its parts, such as:
38
+
39
+ ```js
40
+ _.app.kireji.www.editor.selected
41
+ ```
42
+
43
+ The root part is represented by `_` and is the only global object. This prevents poluting the global namespace and allows all parts to make absolute reference to eachother.
44
+
45
+ The framework stores its MVC abstracts and MPHF arithmetic under the domain name `"core.parts"`, allowing them to be reached like so:
46
+
47
+ ```js
48
+ _.parts.core
49
+ ```
50
+
51
+ You can explore this organization in action by going to [www.kireji.app](https://www.kireji.app).
52
+
53
+ ---
54
+
55
+ ## Live Applications
56
+
57
+ kireji is in alpha. To see the technology in action, check on the kireji.app platform. This is a connected cross-origin app ecosystem that unites eight different web applications into a single state. That way, as users browse between applications, they applications have in-depth knowledge of eachother's state.
58
+
59
+ This is done completely without cookies, javascript storage APIs, user authentication, or uploading state information to a central server. As a consequence, these applications provide a permalink to every possible state they can be in. This enables robust debugging.
60
+
61
+ * [kireji.app](https://www.kireji.app) – an entropy and hash-space explorer for the platform
62
+ * [ejaugust.com](https://www.ejaugust.com) – a notebook-style blog about the platform
63
+ * [desktop.parts](https://www.desktop.parts) – a preview of a GUI-based OS experience
64
+ ### Coming Soon
65
+
66
+ The following apps are not built yet, but their domain names and landing pages have been added to the platform:
67
+ * [core.parts](https://www.core.parts) – likely to become a web-based Universal IDE
68
+ * [user.parts](https://www.user.parts) – potential editor for software parts
69
+ * [glowstick.click](https://www.glowstick.click) – purpose TBD
70
+ * [kireji.io](https://www.kireji.io) – the future gamified UIDE
71
+ * [orenjinari.com](https://www.orenjinari.com) – example of an artist's portfolio
72
+
73
+ ---
74
+
75
+ ## Learn More
76
+
77
+ <!-- Looking ahead? See [FUTURE.md](FUTURE.md) for a deep dive into what's coming next.-->
78
+ Explore the technical background and ideas that shape the kireji platform:
79
+
80
+ * [Entropy-Perfect Encoding](https://www.ejaugust.com/0.126.4/4lb5kAh4PhZXOKxrM/) — on URL space, compression theory, and minimal perfect hash functions
81
+ * [The Charm](https://www.ejaugust.com/0.126.3/4lbxJ29P-vnXOKxrM/) — on measuring entropy and URL information density
82
+ * [Why DNS?](https://www.ejaugust.com/0.126.4/4lbHaxsKnzRXOKxrM/) — part namespacing and platform-wide coordination
83
+ <!--
84
+ * [The Multiverse and the Universal IDE](https://www.ejaugust.com/0.126.4/4lbeO3z_cmrXOKxrM/) — metaphors for self-rewriting environments
85
+ * [The Gamified Universal IDE](https://www.ejaugust.com/0.126.4/4lbofySVBqVXOKxrM/) — an aspirational vision of immersive development tools -->
86
+
87
+ ---
88
+
89
+ ## **Technology Stack**
90
+
91
+ * **JavaScript (ECMAScript)**
92
+ * **CSS (Vanilla)**
93
+ * **HTML (W3C Standards)**
94
+ * **Service Workers for offline support**
95
+ * **Serverless-compatible HTML rendering**
96
+
97
+ ---
98
+
99
+ ### **Zero Dependencies: A Simpler Equation**
100
+
101
+ kireji is written entirely with vanilla JavaScript, CSS, and HTML. No libraries, frameworks, or third-party packages are imported.
102
+
103
+ This choice was made to preserve full control over the performance of the hash function, align closely with web standards, reduce dependency resolution for applications using kireji, and to offer an opportunity to simplify the equation that defines the system's behavior.
104
+
105
+ By encoding its own components within its data model, kireji and its surrounding data model can be reasoned about end-to-end, as a self-contained and self-descriptive system.
106
+
107
+ ---
108
+
109
+ ## **Current Status**
110
+ [![Project Status: Alpha](https://img.shields.io/badge/Project%20Status-Alpha-orange)](https://www.repostatus.org/#alpha)
111
+ [![Commits](https://img.shields.io/github/commit-activity/t/EJAugust/EJAugust)](https://github.com/EJAugust/EJAugust)
112
+ [![GitHub Last Commit](https://img.shields.io/github/last-commit/EJAugust/EJAugust)](https://github.com/EJAugust/EJAugust)
113
+
114
+ The following milestones completed:
115
+
116
+ * Core framework functionality
117
+ * CI/CD pipeline
118
+ * MPFH for stateless deep linking and data compression
119
+ * Reactive front-end framework via MVC + MPFH
120
+ * Domain-named archetecture ready for DNS integration
121
+ * In-platform part inspector
122
+ * Node.js server built-in
123
+ * Local debugging and development at localhost:3000
124
+ * Desktop operating system preview
125
+ * Ready-made stateful components with HTML and CSS, such as
126
+ - Scroller with custom scroll-bar implementation (more customizable than the native scrollbar)
127
+ - Color mode management that automatically computes shades from a given color pallete
128
+ - Additive parts for mutually exclusive variable assignments
129
+ - Multiplicative parts for independant variables
130
+ - Movie clip part for animating data models with a dedicated hash for every frame
131
+ - Notebook - a blog template
132
+
133
+ ### **Roadmap**
134
+
135
+ | Phase | Status |
136
+ | ---------------------------------------- | ----------- |
137
+ | **Minimal Perfect Hashing For Any Data** | Completed |
138
+ | **Reacting MVC Framework** | Completed |
139
+ | **CI/CD Pipeline** | Completed |
140
+ | **Model LTS and Versioning Strategy** | Completed |
141
+ | **NPM Packages and Project Generation** | In Progress |
142
+ | **Debug Tools, Docs** | In Progress |
143
+ | **Operating System Concept** | In Progress |
144
+ | **Transfinite State Space** | Planned |
145
+ | **Advanced DNS Integration** | Planned |
146
+ | **Integrated Development Environment** | Planned |
147
+
148
+ ---
149
+
150
+ ## **License and Attribution**
151
+
152
+ <sub>© 2013–2025 Eric Augustinowicz and Kristina Soriano. All Rights Reserved.</sub> <sub>This is a personal research project in active development. It's not production-ready. Please do not copy or redistribute this codebase or its methods. All content is considered prior art.</sub>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kireji",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "A web framework for stateful, entropy-perfect, multi-origin web applications. Currently in alpha. Expect breaking changes for version 0. Use with caution!",
5
5
  "type": "module",
6
6
  "main": "./src/index.js",
@@ -12,20 +12,6 @@
12
12
  "url": "git+https://github.com/kireji-app/kireji.git"
13
13
  },
14
14
  "keywords": [
15
- "dns",
16
- "framework",
17
- "web",
18
- "frontend",
19
- "state-machine",
20
- "static",
21
- "operating-system",
22
- "routing-engine",
23
- "perfect-hash",
24
- "compression-algorithm",
25
- "perfect-hashing",
26
- "automatic-versioning",
27
- "permalink-engine",
28
- "multi-origin",
29
15
  "minimal-perfect-hash-function",
30
16
  "minimal",
31
17
  "perfect",