- Rust 74.7%
- JavaScript 14.5%
- C 8.4%
- Shell 1.7%
- Python 0.5%
- Other 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks are pending
images / cr.torb.dev/torbscript/registry (push) Has been skipped
images / cr.torb.dev/torbscript/release-sync (push) Has been skipped
images / cr.torb.dev/torbscript/site (push) Has been skipped
ci / commit messages (push) Successful in 8s
ci / what the change touches (push) Successful in 8s
ci / gates (push) Blocked by required conditions
ci / which runners exist (push) Waiting to run
ci / bootstrap (linux-x64) (push) Waiting to run
ci / tier A (linux-x64) (push) Blocked by required conditions
ci / tier B (linux-x64) (push) Blocked by required conditions
ci / tools/release-sync and tools/registry (linux-x64) (push) Blocked by required conditions
ci / bootstrap and conformance (windows-x64) (push) Blocked by required conditions
ci / bootstrap and conformance (linux-arm64) (push) Blocked by required conditions
ci / bootstrap and conformance (macos-arm64) (push) Blocked by required conditions
ci / cross-compiled on linux-x64 (windows-x64) (push) Blocked by required conditions
ci / cross-compiled on linux-x64 (linux-arm64) (push) Blocked by required conditions
ci / cross-compiled on linux-x64 (macos-arm64) (push) Blocked by required conditions
ci / every host emits the same C (push) Blocked by required conditions
ci / the VS Code extension (editors/vscode) (push) Waiting to run
ci / the playground (torb as WebAssembly) (push) Blocked by required conditions
ci / conformance (JavaScript under Node.js) (push) Blocked by required conditions
ci / conformance (PHP 5.6, 7.4 and 8.4) (push) Blocked by required conditions
ci / pack the seed (push) Blocked by required conditions
ci / archives (push) Blocked by required conditions
pdisc / pdisc (push) Successful in 11s
images / cr.torb.dev/torbscript/site:edge (main) (push) Successful in 13m51s
|
||
| .agents/plugins | ||
| .claude/skills | ||
| .claude-plugin | ||
| .forgejo | ||
| .githooks | ||
| .github/workflows | ||
| .vscode | ||
| benchmarks | ||
| book | ||
| brand | ||
| compiler | ||
| docs | ||
| editors/vscode | ||
| examples | ||
| playground | ||
| runtime | ||
| skills | ||
| std | ||
| tests | ||
| tools | ||
| .gitattributes | ||
| .gitignore | ||
| .pdisc-sidecar.yaml | ||
| .pdisc.yaml | ||
| apm.yml | ||
| CLAUDE.md | ||
| CODE_OF_CONDUCT.md | ||
| CONCEPT.md | ||
| INDEX.md | ||
| LICENSE | ||
| project.trb | ||
| README.md | ||
| SECURITY.md | ||
TorbScript
One language, every layer. A single-language ecosystem.
A functional-first, multi-paradigm scripting language with value semantics. It runs interpreted and compiles to native executables, and it is its own configuration format.
- CONCEPT.md - the language
- docs/ARCHITECTURE.md - how it is implemented, and the state of it
- examples/tour - the language in thirteen files
- docs/site/agents.md - the Agent Skills that teach an AI agent TorbScript, and the one line that installs them into Claude Code, Codex, OpenClaw, Copilot and others
- SECURITY.md - how to report a vulnerability, and which versions get security fixes
- CODE_OF_CONDUCT.md - the Contributor Covenant, and where to report unacceptable behavior
| Directory | Contains |
|---|---|
compiler/ |
The toolchain, written in TorbScript |
std/ |
The standard library, one package per directory (std/core, std/fs, ...; std/prelude re-exports) |
runtime/ |
The C runtime every compiled binary links against (runtime/README.md) |
examples/ |
Tour and example projects |
skills/ |
The Agent Skills of the language, written from docs/ by torb docs skill (docs/site/agents.md) |
tests/ |
The conformance suite and the language smoke programs (tests/conformance/README.md) |
brand/ |
The logo, the icons and the design tokens (brand/README.md, docs/design/BRAND.md) |
playground/ |
The playground of torb.dev/play: torb built as WebAssembly, and the page's script (docs/tooling/the-playground.md) |
Building
The compiler is written in TorbScript and compiles itself, so a checkout needs two things: a C compiler
($TORB_CC, or clang, gcc, cc in that order) and a seed - a torb that already exists. The seed is not in
git, because it is a build artifact of an earlier commit rather than a fact about this one.
seed/torb[.exe] a binary for this platform: a release download, or one built by a `torb` you already have
seed/program.c the portable seed: the compiler as one C file, which builds anywhere a C compiler does
Put one of the two in place and build:
sh tools/bootstrap.sh # seed -> build/bootstrap/torb -> build/release/torb
Two steps and not one: the seed compiles the current sources, that binary compiles them again, and the two program.c
are compared byte for byte. build/release/torb is the compiler that comes out.
A release publishes both artifacts, so a checkout downloads the binary for its platform, or program.c for a platform
that has none. Between releases the seed is whatever torb was built last:
torb build ./compiler --output ./seed/torb # a binary seed for this platform
torb build ./compiler --emit-c --output ./seed/torb # seed/program.c, the portable one
Once build/release/torb is there:
sh tools/gates.sh a # the gates of every round (compiler/CONTRIBUTING.md)
sh runtime/build.sh # the C runtime and its own tests