web-tree-sitter
0.27.1 · 8 Oct 2026MIT4.8M / weekRepositoryHomepagenpmAtom feed
Latest releases
All 73 releases- 0.27.x · latest line
0.27.1
8 Oct 2026- breaking
cli: fix query test capture range matching across lines
decode UTF-16 surrogate pairs with input endianness
rust: address new nightly lints
What's Changed
decode UTF-16 surrogate pairs with input endianness
- breaking
cli: fix query test capture range matching across lines
rust: address new nightly lints
generate: resolve token names in debug output
generate: keep GCC jump tables enabled for large lexers
generate: exclude external word tokens from keyword extraction
lib: check shifted stack versions during error recovery
generate: detect indirect recursion in flattened productions
preserve column dependency when balancing repeat nodes
lib: acquire capture lists from a free stack instead of scanning
build: don't compile the Wasm stdlib into Emscripten builds
various query issues
rust: ban
std::fs::canonicalizebindings: load Node bindings under Bun again
release v0.27.1
0.27.0
30 Aug 2026- breaking
rust: return
u32fromNode::child_count - breaking
highlight: utf16 support
- breaking
rust: change
ts_set_allocatorto accept one optionalAllocatorobject rather than 4 separate optional function pointers.
What's Changed
start working on v0.27
docs: remove conflicting --release cargo flag in contributing.md
cli: trailing whitespace after multiline text nodes in CST
cli: correct discrepancy with cst for
--no-rangesFix Playground Query
cli: cst printing improvements
cli: set language in cwd for all usages of
highlightcommandcli: concurrent builds of the same grammar on different locations on disk
cli: canonicalize build
--outputpathcli: make
test --updaterewrite all corpus filescli: increase verbosity of
tree-sitter init -uupdatescli: restore test summary output for
tree-sitter testwasm: add some common used defs to wasm stdlib
wasm: update wasm-stdlib.h
Fix python free-threading compatibility
build: define
_BSD_SOURCEdocs: appease clippy regarding spacing in README
wasm: regenerate stdlib with wasm-opt
Clarify lifetime parameters; Rust 2018 idioms
free memory automatically
cli: warn user when
nmcan't be run to verify the symbols inside the parser being builtci: ensure
wasm-stdlib.his regenerated when wasm stdlib source files are modifiedwasm: give binaryen the wasi-sdk treatment
loader: search correct cache directory for wasi-sdk clang
Fix tree-sitter-ruby crate failing to build to Wasm
wasm: add
iswpunctto stdliblib: address strict aliasing violations with
Arraytypemisc Windows fixes
wasm: correct several bugs in
reallocci: add wasm-stdlib.h to cache key
generate: error if a supertype is defined as a terminal
Action overflow
wasm: don't wasm-opt twice
loader: account for nm/ld fix on newer powerpc linux toolchains
wasm: fix
reallocoptimizationcli: use --edits value for fuzz tests
cli: add
--verboseflag tobuildcommandrust: bump language crate version
rust: place
std::env::set_varinsideunsafeblockslib: correct ts_parser_parse docstring
test: acquire lock before downloading wasm tools
cli: allow for both debug logs and graphs
lib: clean up strict aliasing fixes in array.h
cli: require tree-sitter CLI in CMake template
- breaking
rust: return
u32fromNode::child_count allow
-in grammar namesquery: prevent cross-branch capture contamination in alternations with quantifiers
web: add default export to CJS bundle
rust: edition 2024, MSRV 1.90, lint cleanup, and dep updates
- breaking
highlight: utf16 support
use provided by RedoxOS byte orders implementations
generate:
unsafe extern->externin rendered C parserlib: cast NULL in ts_subtree_children macro
cli(init): fix
Package.swiftscanner detection when used as a dependencywasm: update wasi-sdk and binaryen
loader: invalidate cached wasm toolchains on version mismatch
cli:
init -ufixescli(init): extract per-binding generators and named update functions
skip missing Makefile in version command
wasm: pass target triple to clang
generate: optimize TokenSet
Propose fix some typos
loader: link with libc on OpenBSD to compile parser
rust: remove unused dependencies from loader and lib
query: don't add copies for quantifier steps outside alternations
revert allowing dashes in parser name
loader: unconditionally import
Mutexgenerate: allow disabling
qjs-rtfeature from CLIlib: document invariants that must be upheld for
TSInputEditparser: use
LookaheadIteratorin error recovery's all-symbol scanmisc. clippy and typo fixes
parser: sort error recovery reductions for deterministic ordering
cli: misc. improvements
Fix wasm loading of languages w/ multiple reserved word sets
loader: don't discard CC wrapper command specified in
CCvariablegenerate: avoid panicking when a supertype only has hidden external token children
cli: replace regex with manual parsing in test file parser PLUS loader lock file rewrite
generate: don't require
tree-sitter.jsonfor ABI 15ci: include wasi-sdk and binaryen version files in fixture cache hash
generate: More optimizations
update broken link to Parser.Language in template
update parser template to zig 0.16
loader: allow filenames with dots
generate: pass default optimization level in
generate_parser_for_grammarPrevent a buffer over-read when parsing 4-byte UTF-16 characters.
Add Solaris support to the portable endian header
query: overflow in capture pool ids + some perf
wasm: add
Language.loadSyncfor synchronous loadingcli: account for process versions > 5 in the parse command's pretty debug output.
Validate Wasm language memory reads
generate: improve error message for nonterminals used in immediate token rule
generate: rewrite
parse_grammarwith forward DFStest: write fixture headers once
wasm: load supertype tables for ABI 15 grammars
test: restore corpus test header blank line and divider tie behavior
cli: place generate artifacts next to grammar file rather than cwd
lib: update doc comment for
ts_parser_parselib: use correct TREE_SITTER_HIDE_SYMBOLS macro name in alloc.h
generate: derive
DeserializeonGenerateErrorand all subtypescli: improve soundness of cst range calculation
rewrite
ts_subtree__write_to_stringiterativelyloader: skip --no-undefined for sanitizer grammar builds
cli: infinite loop in highlight test
lib: Consider subtree lookahead bytes when determining whether the parser can reuse a node.
bindings: defer importlib.resources import in python template
add DESCRIPTION to grammar Makefile template
cli: display warning to user if parser test corpus dir isn't found
cli: warn user for various malformed tests
docs: explicitly warn against aliasing supertypes
rust: more clippy fixes in generate
cli: highlight test did not properly check for spans on later rows
rust: use more accurate types for various
IoErrorstructsfeat(cli)
tree-sitter test --show-diff-symbolslib: address strict aliasing violations in
TreeCursortypedsl: forbid invalid field names
Clarify behavior of advance(..., skip) in external scanner docs
Update README.md
Fix issues with queries matching a parent node with anchored children (siblings)
Add
ts_query_copyfor cloning queriesgenerate: collect warnings as structured data
- breaking
rust: change
ts_set_allocatorto accept one optionalAllocatorobject rather than 4 separate optional function pointers. xtask: eliminate silent errors in zig fetch
query: short-circuit longest-match dedup for disjoint states
query: various anchor fixes
improve error message and docs for supertypes made invalid by hidden children
Fix C++ compilation errors in array macros.
rust: address new clippy lints
- breaking
cli: don't load all languages via config when lib path is passed
generate: strip non-ASCII case folds
templates: update setup.py & Package.swift
ci: re-set executable permission on release artifacts before zipping
web: expand
Language::loadto acceptURLfilepath- breaking
highlight: include underlying
LanguageErrorin highlight and tag crates' error enums Fix broken url
generate: only strip case-folded ſ/K when the /i flag is set
cli:
init --updateshould not updatesetup.pyafter replacing itquery: keep the trailing anchor when a zero-matched quantifier is anchored on both sides
init: don't lowercase repository url
- breaking
cli: make parents flags a hard requirements via clap
highlight: use
std::sync::OnceCellfor various loader fields- breaking
rust: require parser loggers to be
Send + 'static - breaking
cli: rework HTML output modes in highlight
parser: restart recovery for invalid tokens in the error state
Fix associativity resolution with mixed shift precedences
- breaking
rust: tie query iterators to options lifetime
Expose
OptLevelongenerate_parser_for_grammarparser: fix parsing bug repeat operator
generate: embrace data oriented design
query: correctly identify
MISSINGnodes in queriestest: allow corpus tests to use cst outputs
query: correctly set a state's
skipped_quantifierflag when arust: trim unused imports
lib: add state to missing nodes
generate: fold case-insensitive patterns at the AST leaves
- breaking
generate: error on invalid byte class patterns
- breaking
lib: rework
LookaheadIterator parser: avoid wide error nodes on unparseable input
- breaking
swift: drop Package.swift
lib: fast paths for ascii
Allow using Tree-sitter rust lib in multi-threaded web apps compiled to wasm32-unknown-unknown
generate: refactor
node_typesJSON generation logicci: run all workspace tests
Upgrade to latest wasmtime, improve robustness and perf of wasm-based parsing
- breaking
generate: error when nonexistent file path is passed to
generate_parser_in_directory. - breaking
add an eof function
rust: remove
must_useattribute fromTree::changed_rangesgenerate: further node-types.json cleanup
generate: use a single buffer for the string pool's backing store
cli: align GrammarSchema type with grammar() return value
playground: set LANGUAGE_BASE_URL to "." to fix subfolder hosting
web: map Node-only specifiers to false via browser field
cli: correct zero-based positions for --edits
various memory safety issues
Remove Dockerfile mention from flake.nix
- 0.26.x · maintenance
0.26.13
23 Aug 2026query: correctly identify
MISSINGnodes in queriesquery: correctly set a state's
skipped_quantifierflag when agenerate: fold case-insensitive patterns at the AST leaves
What's Changed
query: correctly identify
MISSINGnodes in queriesquery: correctly set a state's
skipped_quantifierflag when agenerate: fold case-insensitive patterns at the AST leaves
parser: avoid wide error nodes on unparseable input
ci: run all workspace tests
rust: remove
must_useattribute fromTree::changed_rangesrelease v0.26.13
0.26.12
8 Aug 2026generate: fold case-insensitive patterns ourselves
query: keep the trailing anchor when a zero-matched quantifier is anchored on both sides
templates: add C source files to Python sdist
What's Changed
generate: fold case-insensitive patterns ourselves
query: keep the trailing anchor when a zero-matched quantifier is anchored on both sides
templates: add C source files to Python sdist
init: don't lowercase repository url
highlight: use
std::sync::OnceCellfor various loader fieldsparser: restart recovery for invalid tokens in the error state
Fix associativity resolution with mixed shift precedences
parser: fix parsing bug repeat operator
release v0.26.12
0.26.11
12 Jul 2026
Notes older than 90 days are read on the Releases tab.
Dependency tracking · free for 3 projects
Know when your own dependencies move
web-tree-sitter published 13 releases in the last 12 months. Inlinr folds the routine ones into a line and keeps the few that need you.
Advisories reach you
An email when a critical or high advisory affects a project, before the next install.
Upgrades checked first
Peer ranges, Node, ESM-only and types changes read before you bump.
Only what matters
Majors and breaking notes stay; patches and sibling bumps fold into one line.
Registry facts last checked 22 Oct 2026. Releases and advisories last read 22 Oct 2026.