the native language
for awesomeness
write familiar javascript syntax, compile to native binaries, and ship ai inference & data pipelines at any scale. no runtime, bare metal & zero cost abstractions that just work.
// Core builtins — same as tish/examples/hello-universelet name = "universe"console.log(`hello, ${name}!`) const numbers = [1, 2, 3, 4, 5]const doubled = numbers.map(n => n * 2)console.log(doubled)01
opinionated syntax
javascript/typescript feel, multiple compile targets
tish is a hardened js/ts-like surface: let/const, arrow functions, async/await, template literals, and modules. one source tree runs in a tree-walking interpreter or bytecode vm, transpiles to javascript, or ships as wasm/wasi or a native binary — pick the backend and target that fit your deploy story.
// you dont have to rewrite everything in rust
- -strict equality only; no undefined — null or a real value
- -native modules on the rust backend: tish:http, tish:fs, tish:process, and more
- -optional type syntax parsed at compile time (checked types and codegen still evolving)
- -secure-by-default: http, fs, process, and regex behind explicit feature flags
02
rechargeable batteries
the features and functionality you keep coming back for
javascript- and node-shaped builtins out of the box: console, math, json, arrays, strings, promises when http is enabled. on the rust backend, pull in vetted native surface area — fetch, serve, filesystem, process env — without hand-rolled c ffi; extend the host with rust modules the compiler understands.
// js with rust batteries
- -http feature: fetch, fetchAll, serve, timers; tish:ws for websocket clients/servers when enabled
- -fs feature: readFile, writeFile, readDir, mkdir for local io
- -optional polars: import { Polars } from 'tish:polars' when the embedder registers it
- -examples and tests in the tish repo mirror what the toolchain actually supports
03
native compilation
more metal, more native, more blazingly fast
`tish build` turns the same program into a standalone native binary, browser wasm, wasi for wasmtime-style runtimes, or plain javascript for any js engine. the default rust backend emits rust that links `tishlang_runtime` and can load `tish:*` modules; cranelift and llvm paths embed bytecode and run the vm inside a small native shell — ideal when you want a quick compile with no cargo in the loop.
// cloud & embedded
- -tish build — native (rust, cranelift, or llvm), wasm, wasi, or js
- -rust backend: full interop with native tish modules; cranelift/llvm: pure tish, vm-class throughput today
- -standalone binaries: ship without asking users to install the tish toolchain
- -deploy to the zectre platform with the same artifacts you build locally
04
ecosystem synergy
cargo, npm, bun, deno, brew
install the cli from homebrew or run it ad hoc with npx. compile from source with cargo when you are hacking the compiler. emit javascript and drop the output beside existing npm, bun, or deno projects. editor support ships as fmt, lint, and an lsp that editors can wire up — including the tish vscode extension.
// write less, ship more
- -brew tap tishlang/tish and brew install tish on macos and linux
- -npx @tishlang/tish run or build without a global install; create-tish-app for scaffolds
- -tish build --target js for bundlers and runtimes that already speak javascript
- -tish-fmt, tish-lint, tish-lsp, and crates published to crates.io for deeper integration
winner, winner
faster is better
Average execution time across 50+ core language & performance tests — arrays, objects, math, strings, and control flow. Tish native, Node, Bun, Deno, and QuickJS are measured on identicalish workloads from the Tish test suite.