@ecmaos/kernel 0.2.0 → 0.2.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.
- package/README.md +54 -45
- package/dist/.vite/manifest.json +65 -0
- package/dist/Poison-ChSGZazu.js +1244 -0
- package/dist/Poison-ChSGZazu.js.map +1 -0
- package/dist/{assets/browser-BgTges7v.js → browser-CH-1j4CC.js} +2 -2
- package/dist/browser-CH-1j4CC.js.map +1 -0
- package/dist/{assets/index-_qi20yzV.js → empty-C_utvVBb.js} +1076 -1459
- package/dist/empty-C_utvVBb.js.map +1 -0
- package/dist/index.html +2 -2
- package/dist/{assets/install-BQEEL5Go.js → install-vMOoUe2p.js} +5 -7
- package/dist/install-vMOoUe2p.js.map +1 -0
- package/dist/kernel.d.ts +274 -0
- package/dist/kernel.js +5 -0
- package/dist/kernel.js.map +1 -0
- package/dist/{assets/topbar.min-Cqn7CAGT.js → topbar.min-DTxqjRf-.js} +2 -2
- package/dist/topbar.min-DTxqjRf-.js.map +1 -0
- package/dist/ui.d.ts +27 -0
- package/dist/ui.js +21 -0
- package/dist/ui.js.map +1 -0
- package/package.json +11 -8
- package/dist/assets/bios-Bf2cwaR2.wasm +0 -0
- package/dist/assets/browser-BgTges7v.js.map +0 -1
- package/dist/assets/index-_qi20yzV.js.map +0 -1
- package/dist/assets/install-BQEEL5Go.js.map +0 -1
- package/dist/assets/topbar.min-Cqn7CAGT.js.map +0 -1
- /package/dist/{assets/index-C56A6-ta.css → kernel.css} +0 -0
package/README.md
CHANGED
|
@@ -2,41 +2,45 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://ecmaos.sh)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> Made with ❤️ by [Jay Mathis](https://jaymath.is)
|
|
6
|
+
>
|
|
7
|
+
> [](https://github.com/mathiscode) [](https://github.com/mathiscode)
|
|
8
|
+
|
|
9
|
+
[ecmaOS](https://ecmaos.sh) is a [browser-based operating system kernel](https://global.discourse-cdn.com/spiceworks/original/4X/8/7/b/87b7be8e7e2cd932affe5449dba69dc16e30d721.gif) and suite of applications written primarily in TypeScript, AssemblyScript, and C++. It's the successor of [web3os](https://github.com/web3os-org/kernel).
|
|
10
|
+
|
|
11
|
+
The goal is to create a kernel and supporting apps that tie together modern web technologies and utilities to form an "operating system" that can run on modern browsers, not just to create a "desktop experience". It offers the ability to run a wide variety of apps on top of a (mostly) sandboxed foundation, offering some measure of security by default. Its main use case is to provide a consistent environment for running web apps, but it has features that allow for more powerful custom scenarios. The kernel could also be repurposed as a platform for custom applications, games, and more.
|
|
6
12
|
|
|
7
|
-
|
|
13
|
+
---
|
|
8
14
|
|
|
9
15
|
> *"The computer can be used as a tool to liberate and protect people, rather than to control them."*
|
|
10
16
|
> — Hal Finney
|
|
11
17
|
|
|
12
|
-
[](https://docs.ecmaos.sh)
|
|
13
18
|
[](https://www.npmjs.com/package/@ecmaos/kernel)
|
|
14
19
|
[](https://ecmaos.sh)
|
|
15
20
|
[](https://github.com/ecmaos/ecmaos/pulse)
|
|
16
21
|
[](https://github.com/ecmaos/ecmaos/commit/main)
|
|
22
|
+
[](https://docs.ecmaos.sh)
|
|
23
|
+
[](https://github.com/ecmaos/ecmaos/blob/main/LICENSE)
|
|
17
24
|
|
|
18
|
-
[](https://github.com/ecmaos/ecmaos/issues)
|
|
19
|
-
[](https://github.com/ecmaos/ecmaos/issues?q=is%3Aissue+is%3Aclosed)
|
|
20
|
-
[](https://github.com/ecmaos/ecmaos/pulls)
|
|
21
|
-
[](https://github.com/ecmaos/ecmaos/pulls?q=is%3Apr+is%3Aclosed)
|
|
25
|
+
[](https://github.com/ecmaos/ecmaos/issues)
|
|
26
|
+
[](https://github.com/ecmaos/ecmaos/issues?q=is%3Aissue+is%3Aclosed)
|
|
27
|
+
[](https://github.com/ecmaos/ecmaos/pulls)
|
|
28
|
+
[](https://github.com/ecmaos/ecmaos/pulls?q=is%3Apr+is%3Aclosed)
|
|
22
29
|
|
|
23
|
-
[](https://github.com/ecmaos/ecmaos/stargazers)
|
|
31
|
+
[](https://github.com/ecmaos/ecmaos/network)
|
|
32
|
+
[](https://github.com/ecmaos/ecmaos/watchers)
|
|
33
|
+
[](https://github.com/sponsors/mathiscode)
|
|
34
|
+
[](https://github.com/ecmaos/ecmaos/graphs/contributors)
|
|
27
35
|
|
|
28
36
|
[](https://discord.gg/ZJYGkbVsCh)
|
|
29
37
|
[](https://matrix.to/#/#ecmaos:matrix.org)
|
|
30
38
|
[](https://ecmaos.bsky.social)
|
|
31
39
|
[](https://www.reddit.com/r/ecmaos)
|
|
32
40
|
|
|
33
|
-
> Made with ❤️ by [Jay Mathis](https://jaymath.is)
|
|
34
|
-
>
|
|
35
|
-
> [](https://github.com/mathiscode) [](https://github.com/mathiscode)
|
|
36
|
-
|
|
37
41
|
## Features
|
|
38
42
|
|
|
39
|
-
- TypeScript, WebAssembly, AssemblyScript, C++
|
|
43
|
+
- TypeScript, WebAssembly, AssemblyScript, Rust, C++
|
|
40
44
|
- Filesystem supporting multiple backends powered by [zenfs](https://github.com/zen-fs/core)
|
|
41
45
|
- Terminal interface powered by [xterm.js](https://xtermjs.org)
|
|
42
46
|
- Pseudo-streams, allowing redirection and piping
|
|
@@ -51,39 +55,12 @@ The goal is to create a kernel and supporting apps that tie together modern web
|
|
|
51
55
|
- Internationalization framework for translating text powered by [i18next](https://www.i18next.com)
|
|
52
56
|
- Window manager powered by [WinBox](https://github.com/nextapps-de/winbox)
|
|
53
57
|
- `BIOS`: A C++ module compiled to WebAssembly with [Emscripten](https://emscripten.org) providing performance-critical functionality
|
|
58
|
+
- `Jaffa`: A [Tauri](https://tauri.app) app for running ecmaOS in a desktop or mobile environment
|
|
54
59
|
- `Metal`: An API server for allowing connections to physical systems from ecmaOS using [Hono](https://hono.dev)
|
|
55
60
|
- `SWAPI`: An API server running completely inside a service worker using [Hono](https://hono.dev)
|
|
56
61
|
|
|
57
62
|
## Basic Overview
|
|
58
63
|
|
|
59
|
-
- `Kernel`
|
|
60
|
-
- Authentication (WebAuthn)
|
|
61
|
-
- Components (Web Components/Custom Elements)
|
|
62
|
-
- Devices
|
|
63
|
-
- DOM
|
|
64
|
-
- Events (CustomEvents)
|
|
65
|
-
- Filesystem (ZenFS)
|
|
66
|
-
- Internationalization (i18next)
|
|
67
|
-
- Interval Manager (setInterval)
|
|
68
|
-
- Log Manager (tslog)
|
|
69
|
-
- Memory Manager (Abstractions)
|
|
70
|
-
- Process Manager
|
|
71
|
-
- Protocol Handlers (web+ecmaos://...)
|
|
72
|
-
- Service Worker Manager
|
|
73
|
-
- Shell
|
|
74
|
-
- Storage (IndexedDB, localStorage, sessionStorage, etc.)
|
|
75
|
-
- Terminal (xterm.js)
|
|
76
|
-
- User Manager
|
|
77
|
-
- WASM Loader
|
|
78
|
-
- Window Manager (WinBox)
|
|
79
|
-
- Workers (Web Workers)
|
|
80
|
-
|
|
81
|
-
- `BIOS`
|
|
82
|
-
- The BIOS is a C++ module compiled to WebAssembly with [Emscripten](https://emscripten.org) providing performance-critical functionality
|
|
83
|
-
- The BIOS has its own filesystem, located at `/bios` — this allows data to be copied in and out of the BIOS for custom code and utilities
|
|
84
|
-
- The main idea is that data and custom code can be loaded into it from the OS for WASM-native performance, as well as providing various utilities
|
|
85
|
-
- Confusingly, the Kernel loads the BIOS — not the other way around
|
|
86
|
-
|
|
87
64
|
- `Apps`
|
|
88
65
|
- These are full applications that are developed specifically to work with ecmaOS
|
|
89
66
|
- An app is an npm package, in which the bin file has a shebang line of `#!ecmaos:bin:app:myappname`
|
|
@@ -94,9 +71,15 @@ The goal is to create a kernel and supporting apps that tie together modern web
|
|
|
94
71
|
- To publish to Verdaccio, run `# npm publish --registry http://localhost:4873` in your app's development environment
|
|
95
72
|
- Then to install from your local registry, run `# install @myscope/mypackage --registry http://localhost:4873`
|
|
96
73
|
|
|
74
|
+
- `BIOS`
|
|
75
|
+
- The BIOS is a C++ module compiled to WebAssembly with [Emscripten](https://emscripten.org) providing performance-critical functionality
|
|
76
|
+
- The BIOS has its own filesystem, located at `/bios` — this allows data to be copied in and out of the BIOS for custom code and utilities
|
|
77
|
+
- The main idea is that data and custom code can be loaded into it from the OS for WASM-native performance, as well as providing various utilities
|
|
78
|
+
- Confusingly, the Kernel loads the BIOS — not the other way around
|
|
79
|
+
|
|
97
80
|
- `Core`
|
|
98
81
|
- Core modules provide the system's essential functionality; this includes the kernel itself
|
|
99
|
-
- Other core modules include Metal, SWAPI,
|
|
82
|
+
- Other core modules include BIOS, Jaffa, Metal, SWAPI, as well as the main `@ecmaos/types` package
|
|
100
83
|
|
|
101
84
|
- `Commands`
|
|
102
85
|
- Commands are small utilities that aren't quite full Apps, provided by the shell
|
|
@@ -108,6 +91,32 @@ The goal is to create a kernel and supporting apps that tie together modern web
|
|
|
108
91
|
- Devices may also be directly read/written, and will behave accordingly (or have no effect)
|
|
109
92
|
- An individual device module can provide multiple device drivers, e.g. `/dev/usb` provides `/dev/usb-mydevice-0001-0002`
|
|
110
93
|
|
|
94
|
+
- `Jaffa`
|
|
95
|
+
- Jaffa is a [Tauri](https://tauri.app) wrapper for the ecmaOS kernel
|
|
96
|
+
- It's used to tie the kernel into a desktop or mobile environment, allowing for native functionality
|
|
97
|
+
|
|
98
|
+
- `Kernel`
|
|
99
|
+
- Authentication (WebAuthn)
|
|
100
|
+
- Components (Web Components/Custom Elements)
|
|
101
|
+
- Devices
|
|
102
|
+
- DOM
|
|
103
|
+
- Events (CustomEvents)
|
|
104
|
+
- Filesystem (ZenFS)
|
|
105
|
+
- Internationalization (i18next)
|
|
106
|
+
- Interval Manager (setInterval)
|
|
107
|
+
- Log Manager (tslog)
|
|
108
|
+
- Memory Manager (Abstractions)
|
|
109
|
+
- Process Manager
|
|
110
|
+
- Protocol Handlers (web+ecmaos://...)
|
|
111
|
+
- Service Worker Manager
|
|
112
|
+
- Shell
|
|
113
|
+
- Storage (IndexedDB, localStorage, sessionStorage, etc.)
|
|
114
|
+
- Terminal (xterm.js)
|
|
115
|
+
- User Manager
|
|
116
|
+
- WASM Loader
|
|
117
|
+
- Window Manager (WinBox)
|
|
118
|
+
- Workers (Web Workers)
|
|
119
|
+
|
|
111
120
|
- `Metal`
|
|
112
121
|
- Metal is an API server for allowing connections to physical systems from ecmaOS using [Hono](https://hono.dev)
|
|
113
122
|
- Authenticated and encrypted connections with JWK/JWE/JOSE
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_browser-CH-1j4CC.js": {
|
|
3
|
+
"file": "browser-CH-1j4CC.js",
|
|
4
|
+
"name": "browser",
|
|
5
|
+
"isDynamicEntry": true,
|
|
6
|
+
"imports": [
|
|
7
|
+
"_empty-C_utvVBb.js"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
"_empty-C_utvVBb.js": {
|
|
11
|
+
"file": "empty-C_utvVBb.js",
|
|
12
|
+
"name": "empty",
|
|
13
|
+
"dynamicImports": [
|
|
14
|
+
"_topbar.min-DTxqjRf-.js",
|
|
15
|
+
"_browser-CH-1j4CC.js",
|
|
16
|
+
"src/tree/lib/commands/install.ts",
|
|
17
|
+
"node_modules/.pnpm/figlet@1.8.0/node_modules/figlet/importable-fonts/Poison.js"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"_kernel.css": {
|
|
21
|
+
"file": "kernel.css",
|
|
22
|
+
"src": "_kernel.css"
|
|
23
|
+
},
|
|
24
|
+
"_topbar.min-DTxqjRf-.js": {
|
|
25
|
+
"file": "topbar.min-DTxqjRf-.js",
|
|
26
|
+
"name": "topbar.min",
|
|
27
|
+
"isDynamicEntry": true,
|
|
28
|
+
"imports": [
|
|
29
|
+
"_empty-C_utvVBb.js"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"node_modules/.pnpm/figlet@1.8.0/node_modules/figlet/importable-fonts/Poison.js": {
|
|
33
|
+
"file": "Poison-ChSGZazu.js",
|
|
34
|
+
"name": "Poison",
|
|
35
|
+
"src": "node_modules/.pnpm/figlet@1.8.0/node_modules/figlet/importable-fonts/Poison.js",
|
|
36
|
+
"isDynamicEntry": true
|
|
37
|
+
},
|
|
38
|
+
"src/tree/kernel.ts": {
|
|
39
|
+
"file": "kernel.js",
|
|
40
|
+
"name": "kernel",
|
|
41
|
+
"src": "src/tree/kernel.ts",
|
|
42
|
+
"isEntry": true,
|
|
43
|
+
"imports": [
|
|
44
|
+
"_empty-C_utvVBb.js"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"src/tree/lib/commands/install.ts": {
|
|
48
|
+
"file": "install-vMOoUe2p.js",
|
|
49
|
+
"name": "install",
|
|
50
|
+
"src": "src/tree/lib/commands/install.ts",
|
|
51
|
+
"isDynamicEntry": true,
|
|
52
|
+
"imports": [
|
|
53
|
+
"_empty-C_utvVBb.js"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"src/ui.ts": {
|
|
57
|
+
"file": "ui.js",
|
|
58
|
+
"name": "ui",
|
|
59
|
+
"src": "src/ui.ts",
|
|
60
|
+
"isEntry": true,
|
|
61
|
+
"imports": [
|
|
62
|
+
"_empty-C_utvVBb.js"
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
}
|