Tidemark¶
Tidemark is a browser-hosted RISC-V Linux userland environment.
This site explains repository boundaries, current implementation structure, and the contracts between layers.
Repositories¶
| Repository | Primary language | Current role |
|---|---|---|
| kernel | Rust | RISC-V Linux userland kernel compiled for WebAssembly targets. |
| runtime | TypeScript | Browser worker runtime that runs guest processes on top of the kernel. |
| sdk | TypeScript | Higher-level API for applications using the runtime. |
The dependency direction is intentionally one-way:
flowchart LR
App["application"]
SDK["@tidemarksh/sdk"]
Runtime["runtime package"]
KernelWasm["kernel WebAssembly bytes"]
Kernel["tidemarksh/kernel"]
App --> SDK
App --> Runtime
SDK --> Runtime
Runtime --> KernelWasm
Kernel --> KernelWasm
The SDK builds on the runtime API, and the runtime expects kernel WebAssembly bytes at creation time.
What Tidemark Is¶
Tidemark is not a full virtual machine monitor and it is not a browser operating system. The current implementation focuses on running RISC-V Linux userland programs inside WebAssembly and browser worker infrastructure.
It can be used as an application-embedded guest execution environment for running Linux userland binaries, command-line tools, language runtimes, build steps, package-backed file layers, and terminal-like workflows inside a browser or compatible worker host. The value is not only CPU emulation; it is the combination of guest execution, filesystem state, process orchestration, stdio, network bridge hooks, and SDK-level provisioning.
At a high level, Tidemark separates guest semantics from browser orchestration and product-level provisioning:
flowchart TB
App["application"]
SDK["sdk<br/>high-level API and package providers"]
Runtime["runtime<br/>workers, process lifecycle, host bridges"]
Kernel["kernel<br/>RISC-V execution, ELF, memory, syscalls"]
Guest["RISC-V Linux userland program"]
App --> SDK
App --> Runtime
SDK --> Runtime
Runtime --> Kernel
Kernel --> Guest
Current Scope¶
The repositories currently contain implementation code for:
- RISC-V instruction execution and ELF loading in the kernel.
- Linux userland syscall, filesystem, process, thread, signal, pipe, socket, and time-related modules in the kernel.
- Runtime worker orchestration, process lifecycle handling, file snapshots, SharedArrayBuffer page cache support, network bridge interfaces, and diagnostic surfaces.
- SDK helpers for creating a runtime, adding files, running commands, resolving package providers, and attaching a simple terminal.
For a deeper description, start with Architecture.
License¶
The kernel, runtime, and SDK repositories are licensed under Apache-2.0.