Vendor libtree-sitter.so (v0.26.8, wasmtime 44.0 statically linked) and call its C API through dart:ffi. Grammar WASM files are loaded by tree-sitter's embedded wasmtime engine via ts_wasm_store_load_language. 48 grammars compiled with tree-sitter build --wasm, 48 highlight queries (42 from upstream repos, 6 written in-house for comment, erlang, gdscript, gitignore, hcl, hlsl, swift). SQLite grammar replaces full SQL (974K-line parser exhausted RAM at compile time). Removes wasm_run and wasm_run_flutter — they downloaded a 22 MB binary from GitHub at first launch, violating the no-network-on- default-launch-path policy. Co-Authored-By: Claude <noreply@anthropic.com>
1.4 KiB
1.4 KiB
libtree-sitter.so — vendored build record
Status: PROVISIONAL — built locally, not yet CI
Built on contributor machine. CI-based reproducible build required before release.
Source
- Repository: https://github.com/tree-sitter/tree-sitter
- Version: 0.26.8 (tag v0.26.8)
- Commit: cd5b087cd9f45ca6d93ab1954f6b7c8534f324d2
- Clone:
/var/mnt/data/projects/treesitter/tree-sitter/
Build command
cmake -B build \
-DTREE_SITTER_FEATURE_WASM=ON \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INCLUDE_PATH=/home/linuxbrew/.linuxbrew/include \
-DWASMTIME_LIBRARY=/home/linuxbrew/.linuxbrew/lib/libwasmtime.a
cmake --build build -j$(nproc)
Dependencies (statically linked)
- wasmtime 44.0.0 — Apache-2.0 with LLVM exception
- Source: Bytecode Alliance, installed via Homebrew
- Linked statically (
libwasmtime.a) so we ship one.so
Toolchain
- Compiler: GCC 15.2.1 (Fedora 43)
- Target: x86_64-linux-gnu
- CMake: system
Binary details
- Size: ~24 MB
- Exports:
ts_wasm_store_new,ts_wasm_store_delete,ts_wasm_store_load_language,ts_wasm_store_language_count, plus full tree-sitter C API
TODO before release
- Build in CI from pinned source SHA
- Record SHA-256 of output
- Cross-compile for macOS (aarch64, x86_64)
- Cross-compile for Windows (x86_64)
- Vendor wasmtime NOTICE file per POLICY.md Apache-2.0 rules