A TypeScript-like language for WebAssembly.
17.9k
Stars
693
Forks
202
Open issues
30
Contributors
AI Analysis
AssemblyScript is a TypeScript-like language that compiles to WebAssembly, enabling developers to write high-performance wasm modules with familiar TypeScript syntax. It serves a specific technical niche: developers building performance-critical components for web applications, embedded systems, or any platform supporting WebAssembly who want type safety without learning a completely new language. It is not a general-purpose application framework and is best suited for teams that need WebAsse...
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
AssemblyScript brings TypeScript syntax to WebAssembly, bridging web developer familiarity with near-native performance
AssemblyScript compiles a strict subset of TypeScript to WebAssembly via Binaryen, targeting web developers who want Wasm performance without learning Rust or C++. It is used in performance-sensitive browser modules, blockchain smart contracts, game engines, audio/video processing, and edge compute runtimes. With ~18K GitHub stars, active npm distribution, and a documented 'Built with AssemblyScript' showcase, it has a measurable real-world footprint. Adoption appears strongest among JavaScript/TypeScript developers who need Wasm output but want to stay close to familiar tooling.
Started in September 2017, shortly after WebAssembly shipped in major browsers. Originally a TypeScript-to-Wasm experiment, it matured into a production-capable compiler with its own standard library, runtime, and optimizer integration through Binaryen.
Early growth was driven by WebAssembly's own rise and the appeal of not needing to learn C/C++/Rust for Wasm. Growth plateaued somewhat as Rust-to-Wasm tooling (wasm-pack) matured, but AssemblyScript retains a distinct niche: TypeScript-familiar developers and environments where JS ecosystem integration is critical. Star growth is now slow (9 stars in 7 days) but reflects a maturing, established project rather than a declining one.
The official website hosts a 'Built with AssemblyScript' page listing real projects. Known adopters include Fastly (edge compute), various blockchain/smart-contract runtimes, and open source game/audio tooling. npm package downloads provide a quantifiable signal not captured here, but public evidence of real-world use is present and verifiable beyond star counts.
Appears to be a self-hosted compiler written in AssemblyScript/TypeScript itself, using Binaryen as the backend for Wasm optimization and code generation. Likely includes a custom type checker and AST pipeline tailored to its strict TypeScript subset, plus a garbage-collected runtime bundled into emitted Wasm modules.
A dedicated CI workflow labeled 'test' is visible in the README badges and a 'Test instructions' link is provided in the repo. Coverage extent is not documented in the README excerpt, but automated testing is clearly present.
Last push was June 13, 2026 — approximately 13 days before the evaluation date. This indicates active, ongoing development. The project has separate CI workflows for testing and publishing, an active Discord, and an OpenCollective sponsorship page, all suggesting sustained maintainer engagement rather than passive maintenance.
ADOPT IF: you are a TypeScript/JavaScript developer who needs to produce WebAssembly modules, want npm-native tooling, and can accept a strict subset of TypeScript semantics (no full TS compatibility). AVOID IF: you need to compile existing TypeScript or JavaScript code directly, require full TypeScript feature parity, or need the absolute maximum Wasm performance — Rust/C++ toolchains will outperform it in those cases. MONITOR IF: you are evaluating Wasm tooling for edge compute or blockchain use cases where the JS ecosystem fit matters more than raw performance headroom.
Independent dimensions
Mainstream potential
4/10
Technical importance
8/10
Adoption evidence
6/10
- AssemblyScript is a strict subset of TypeScript, not a superset — existing TS codebases generally cannot be compiled directly, which limits its 'migration path' appeal.
- Rust/wasm-pack ecosystem has grown significantly and captures many performance-first Wasm use cases, potentially squeezing AssemblyScript's addressable audience over time.
- Core maintainer bandwidth appears limited; the project relies on OpenCollective donations and volunteer contributors, making sustained deep development uncertain.
- The project is pre-1.0 (versioning signals ongoing API evolution), meaning downstream code may face breaking changes across compiler versions.
- WebAssembly's own evolution (GC proposal, component model) may require significant compiler updates; keeping pace with fast-moving Wasm standards is an ongoing resource burden.
AssemblyScript will likely maintain its niche as the preferred Wasm compilation path for TypeScript-first teams, particularly in edge compute and blockchain runtimes, but is unlikely to displace Rust-based Wasm tooling for performance-critical production workloads.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Website
- https://www.assemblyscript.org
- Language
- WebAssembly
- License
- Apache-2.0
- Last updated
- 1w ago
- Created
- 107mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
TypeError: WebAssembly.compile expects a Response object in WebContainer environments
Need to check what precendance for "as" (cast) semantic on our side. TS changed it
Transform readFile/writeFile methods are not called
[Task] Replace Grisu2 with Zmij for float-to-string conversion
Top contributors
Similar repos
WebAssembly/binaryen
Binaryen is a compiler infrastructure library and toolchain for WebAssembly,...
rescript-lang/rescript
ReScript is a statically typed language that compiles to JavaScript, targeting...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
17.9k | +3 | WebAssembly | 8/10 | 1w ago |
|
|
8.5k | — | WebAssembly | 8/10 | 1w ago |
|
|
1.5k | — | TypeScript | 7/10 | 24h ago |
|
|
1.1k | — | TypeScript | 8/10 | 2w ago |
|
|
7.4k | — | ReScript | 8/10 | 1d ago |
|
|
27.5k | — | C++ | 9/10 | 13h ago |
Emscripten compiles C/C++ to Wasm and is more mature with broader language support. AssemblyScript targets TypeScript developers who lack C/C++ experience; it produces cleaner Wasm output for its use cases but cannot compile arbitrary existing C/C++ codebases.
Rust via wasm-pack is the dominant high-performance Wasm path and offers better memory safety guarantees and ecosystem maturity. AssemblyScript trades some performance ceiling and safety for significantly lower learning curve for JS/TS developers.
Binaryen is AssemblyScript's own backend optimizer, not a competitor — it is a dependency. However, developers writing raw Wasm or using Binaryen's wasm2js directly are a different, lower-level audience.
ReScript compiles to JavaScript, not WebAssembly. Both target TypeScript-adjacent developers wanting typed compilation, but they solve different output targets and runtime environments entirely.
TinyGo compiles Go to Wasm and targets Go developers. Similar positioning to AssemblyScript (familiar language for Wasm), but serves a different developer population with different stdlib trade-offs.