9 个版本

0.21.2 2024年4月25日
0.21.1 2024年4月25日
0.20.4 2023年8月18日
0.20.3 2022年11月3日
0.19.0 2021年3月4日

#17 in 文本编辑器

Download history 19031/week @ 2024-05-03 21903/week @ 2024-05-10 21029/week @ 2024-05-17 21301/week @ 2024-05-24 23140/week @ 2024-05-31 18386/week @ 2024-06-07 19647/week @ 2024-06-14 23192/week @ 2024-06-21 20650/week @ 2024-06-28 15355/week @ 2024-07-05 13671/week @ 2024-07-12 13195/week @ 2024-07-19 12637/week @ 2024-07-26 13151/week @ 2024-08-02 12697/week @ 2024-08-09 11476/week @ 2024-08-16

52,767 每月下载量
用于 70 个crate(57 个直接使用)

MIT 许可证

6MB
194K SLoC

C 193K SLoC // 0.0% comments JavaScript 1.5K SLoC // 0.0% comments Scheme 162 SLoC // 0.1% comments Rust 33 SLoC

tree-sitter-rust

CI discord matrix crates npm pypi

tree-sitter 的 Rust 语法。

特性

  • 速度 — 当首次解析文件时,tree-sitter-rust 的速度大约是 rustc 手写解析器的两到三倍。

    $ wc -l examples/ast.rs
      2157 examples/ast.rs
    
    $ rustc -Z unpretty=ast-tree -Z time-passes examples/ast.rs | head -n0
      time:   0.002; rss:   55MB ->   60MB (   +5MB)  parse_crate
    
    $ tree-sitter parse examples/ast.rs --quiet --time
      examples/ast.rs    6.48 ms        9908 bytes/ms
    

    但如果你在解析后编辑文件,由于增量解析系统,tree-sitter 可以在不到一毫秒的时间内通常更新先前存在的语法树以反映你的编辑。

参考资料

依赖关系

~2.8–4MB
~72K SLoC