@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 CHANGED
@@ -2,41 +2,45 @@
2
2
 
3
3
  [![Launch ecmaOS.sh](https://img.shields.io/badge/launch-ecmaos.sh-blue?style=for-the-badge)](https://ecmaos.sh)
4
4
 
5
- [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 in TypeScript. It's the successor of [web3os](https://github.com/web3os-org/kernel).
5
+ > Made with ❤️ by [Jay Mathis](https://jaymath.is)
6
+ >
7
+ > [![Stars](https://img.shields.io/github/stars/mathiscode?style=flat&logo=github&label=⭐️)](https://github.com/mathiscode) [![Followers](https://img.shields.io/github/followers/mathiscode?style=flat&logo=github&label=follow)](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
- 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". 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.
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
- [![API Reference](https://img.shields.io/badge/API-Reference-success)](https://docs.ecmaos.sh)
13
18
  [![Version](https://img.shields.io/github/package-json/v/ecmaos/ecmaos?color=success)](https://www.npmjs.com/package/@ecmaos/kernel)
14
19
  [![Site Status](https://img.shields.io/website?url=https%3A%2F%2Fecmaos.sh)](https://ecmaos.sh)
15
20
  [![Created](https://img.shields.io/github/created-at/ecmaos/ecmaos?style=flat&label=created&color=success)](https://github.com/ecmaos/ecmaos/pulse)
16
21
  [![Last Commit](https://img.shields.io/github/last-commit/ecmaos/ecmaos.svg)](https://github.com/ecmaos/ecmaos/commit/main)
22
+ [![API Reference](https://img.shields.io/badge/API-Reference-success)](https://docs.ecmaos.sh)
23
+ [![GitHub license](https://img.shields.io/badge/license-MIT+Apache2.0-success)](https://github.com/ecmaos/ecmaos/blob/main/LICENSE)
17
24
 
18
- [![Open issues](https://img.shields.io/github/issues/ecmaos/ecmaos.svg)](https://github.com/ecmaos/ecmaos/issues)
19
- [![Closed issues](https://img.shields.io/github/issues-closed/ecmaos/ecmaos.svg)](https://github.com/ecmaos/ecmaos/issues?q=is%3Aissue+is%3Aclosed)
20
- [![Open PRs](https://img.shields.io/github/issues-pr-raw/ecmaos/ecmaos.svg?label=PRs)](https://github.com/ecmaos/ecmaos/pulls)
21
- [![Closed PRs](https://img.shields.io/github/issues-pr-closed/ecmaos/ecmaos.svg?label=PRs)](https://github.com/ecmaos/ecmaos/pulls?q=is%3Apr+is%3Aclosed)
25
+ [![Open issues](https://img.shields.io/github/issues/ecmaos/ecmaos.svg?logo=github)](https://github.com/ecmaos/ecmaos/issues)
26
+ [![Closed issues](https://img.shields.io/github/issues-closed/ecmaos/ecmaos.svg?logo=github)](https://github.com/ecmaos/ecmaos/issues?q=is%3Aissue+is%3Aclosed)
27
+ [![Open PRs](https://img.shields.io/github/issues-pr-raw/ecmaos/ecmaos.svg?logo=github&label=PRs)](https://github.com/ecmaos/ecmaos/pulls)
28
+ [![Closed PRs](https://img.shields.io/github/issues-pr-closed/ecmaos/ecmaos.svg?logo=github&label=PRs)](https://github.com/ecmaos/ecmaos/pulls?q=is%3Apr+is%3Aclosed)
22
29
 
23
- [![Star on GitHub](https://img.shields.io/github/stars/ecmaos/ecmaos?style=flat&logo=github&label=⭐️)](https://github.com/ecmaos/ecmaos/stargazers)
24
- [![Sponsors](https://img.shields.io/github/sponsors/mathiscode?color=red)](https://github.com/sponsors/mathiscode)
25
- [![Contributors](https://img.shields.io/github/contributors/ecmaos/ecmaos?color=yellow)](https://github.com/ecmaos/ecmaos/graphs/contributors)
26
- [![GitHub license](https://img.shields.io/badge/license-MIT+Apache2.0-blue)](https://github.com/ecmaos/ecmaos/blob/main/LICENSE)
30
+ [![Star on GitHub](https://img.shields.io/github/stars/ecmaos/ecmaos?style=flat&logo=github&label=⭐️%20stars)](https://github.com/ecmaos/ecmaos/stargazers)
31
+ [![GitHub forks](https://img.shields.io/github/forks/ecmaos/ecmaos?style=flat&logo=github&label=🔀%20forks)](https://github.com/ecmaos/ecmaos/network)
32
+ [![GitHub watchers](https://img.shields.io/github/watchers/ecmaos/ecmaos?style=flat&logo=github&label=👀%20watchers)](https://github.com/ecmaos/ecmaos/watchers)
33
+ [![Sponsors](https://img.shields.io/github/sponsors/mathiscode?color=red&logo=github&label=💖%20sponsors)](https://github.com/sponsors/mathiscode)
34
+ [![Contributors](https://img.shields.io/github/contributors/ecmaos/ecmaos?color=yellow&logo=github&label=👥%20contributors)](https://github.com/ecmaos/ecmaos/graphs/contributors)
27
35
 
28
36
  [![Discord](https://img.shields.io/discord/1311804229127508081?label=discord&logo=discord&logoColor=white)](https://discord.gg/ZJYGkbVsCh)
29
37
  [![Matrix](https://img.shields.io/matrix/ecmaos:matrix.org.svg?label=%23ecmaos%3Amatrix.org&logo=matrix&logoColor=white)](https://matrix.to/#/#ecmaos:matrix.org)
30
38
  [![Bluesky](https://img.shields.io/badge/follow-on%20Bluesky-blue?logo=bluesky&logoColor=white)](https://ecmaos.bsky.social)
31
39
  [![Reddit](https://img.shields.io/reddit/subreddit-subscribers/ecmaos?style=flat&logo=reddit&logoColor=white&label=r/ecmaos)](https://www.reddit.com/r/ecmaos)
32
40
 
33
- > Made with ❤️ by [Jay Mathis](https://jaymath.is)
34
- >
35
- > [![Stars](https://img.shields.io/github/stars/mathiscode?style=flat&logo=github&label=⭐️)](https://github.com/mathiscode) [![Followers](https://img.shields.io/github/followers/mathiscode?style=flat&logo=github&label=follow)](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, BIOS, as well as the main `@ecmaos/types` package
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
+ }