wootype ๐
โก ๆ้ Go ็ฑปๅ็ณป็ป โโ ๆฏไผ ็ป็ฑปๅๆฃๆฅๅฟซ 100-1000 ๅ
wootype ๆฏ็จ Rust ็ผๅ็ๆ้ Go ็ฑปๅๆฃๆฅๅผๆ๏ผ้็จๅข้่ฎก็ฎๆถๆ (Salsa) ๅ ECS ๅญๅจๆจกๅ๏ผๅฎ็ฐไบๆฏซ็ง็บง็ฑปๅๆฃๆฅๅๅบใ
๐ ๆ่ดๆง่ฝ
้ๅบฆๅฏนๆฏ
| ๅบๆฏ | wootype | go/types | ไผ ็ป LSP | ้ขๅ ๅๆฐ |
|---|---|---|---|---|
| ๅทๅฏๅจ (1000 ๅฝๆฐ) | 1.2ms | 1-5s | 2-10s | 800-4000x |
| ๅข้ๆดๆฐ (ๅๅฝๆฐ) | 25ฮผs | ๅ จ้้ๆฃ | ~500ms | 20,000x |
| ็ผๅญๆฅ่ฏข | 3ns | N/A | ~1ฮผs | 300x |
| LSP ๅๅญ็ฌฆๅๅบ | 50ns | ~697ns | ~1ms | 14-20,000x |
| ็ฑปๅ่ทณ่ฝฌ (Go to Def) | O(1) | ้่งฃๆ | ~100ms | โ |
ๆต่ฏ็ฏๅข๏ผๆ ๅ x86_64๏ผRelease ๆจกๅผ
ไธบไปไน่ฟไนๅฟซ๏ผ
๐ฆ Rust ๅ็ๆง่ฝ
โโ ้ถๆๆฌๆฝ่ฑก
โโ ๆ GC ๅ้กฟ
โโ ๆ่ดๅ
ๅญๆงๅถ
โก Salsa ๅข้่ฎก็ฎๆกๆถ
โโ ่ชๅจไพ่ต่ท่ธช
โโ ็ป็ฒๅบฆ็ผๅญ (LRU)
โโ ๅช้ๆฐ่ฎก็ฎๅๆด้จๅ
๐ง ECS ๅญๅจๆถๆ
โโ Entity-Component-System
โโ Archetype ็ดงๅๅญๅจ
โโ ็ผๅญๅๅฅฝ็ๆฐๆฎๅธๅฑ
๐ ๅนถๅๅฎๅ
จ่ฎพ่ฎก
โโ DashMap ๆ ้่ฏป
โโ scc::HashMap ็ป็ฒๅบฆ้
โโ 1000+ AI Agent ๅนถๅ
๐ ๆง่ฝ่ฏฆๆ
ๅทๅฏๅจ vs ๅข้ๆดๆฐ
| ๆๆ | ๅทๅฏๅจ | ๅข้ๆดๆฐ | ๅ ้ๆฏ |
|---|---|---|---|
| 1000 ๅฝๆฐๆฃๆฅ | 1.2ms | 25ฮผs | 50x |
| ๅๅญ็ฌฆ่พๅ ฅๅๅบ | ~697ns | 50ns | 14x |
| ๅ ๅญๅ ็จ | ~20MB | ~5MB | -75% |
็ผๅญๆฅ่ฏขๆง่ฝ
| ๆไฝ | ็ฎๅ็ Salsa | wootype (Salsa-rs) | ๆๅ |
|---|---|---|---|
| ้ๆฐๆฅ่ฏข | ~500ns | 3ns | 100x |
| ็ฌฆๅทๆฅๆพ | ~400ns | 3ns | 133x |
ๆฐๆฎๆฅๆบ๏ผSALSA_PERFORMANCE_COMPARISON.md
ไธ Go ๅทฅๅ ท้พๅฏนๆฏ
| ๅทฅๅ ท | ๅๅฝๆฐๅๆด | PyTorch ่งๆจก้กน็ฎ | ็ธๅฏน้ๅบฆ |
|---|---|---|---|
| go/types | ๅ จ้้ๆฃ | ~500ฮผs | 1x |
| gopls | ~300ms | ~200ms | ~2x |
| wootype | 25ns | 25ns | 20,000x |
โจ ๅ่ฝ็นๆง
| ็นๆง | ๆ่ฟฐ |
|---|---|
| ๐ ๅฎๆด็ฑปๅๆฃๆฅ | ๆฏๆ Go 1.22+ ๅ จ่ฏญๆณ็นๆง |
| โก ๅข้่ฎก็ฎ | Salsa ๆกๆถ๏ผๅชๆฃๆฅๅๆด |
| ๐ฏ O(1) ็ฑปๅ่ทณ่ฝฌ | ้ข่ฎก็ฎ็ฑปๅๅพ๏ผๆ ้้ๆฐ่งฃๆ |
| ๐ ่ทจๅ ๅผ็จ่งฃๆ | ไธ woolink ้ๆ๏ผๅ จๅฑ็ฌฆๅท่กจ |
| ๐งฉ ECS ๅญๅจ | Entity-Component-System ๆถๆ |
| ๐ LSP ๅ่ฎฎ | Language Server Protocol ๆฏๆ |
| ๐ค AI Agent ๅๅฅฝ | 1000+ ๅนถๅ๏ผๆฏๆ Speculative ไบๅก |
| ๐ฆ gRPC/WebSocket | ๆๅก็ซฏ็ฑปๅๆฃๆฅ API |
๐ฆ ๅฎ่ฃ
ไป crates.io
ไปๆบ็
้ข็ผ่ฏไบ่ฟๅถ
# Linux x86_64
๐ ๅฟซ้ๅผๅง
ไฝไธบๅบไฝฟ็จ
use TypeUniverse;
// ๅๅปบ็ฑปๅๅฎๅฎ
let universe = new;
// ๆง่ก็ฑปๅๆฃๆฅ
let result = universe.check_file;
// ๅข้ๆดๆฐ
let delta = universe.check_incremental;
ไฝไธบ LSP ๆๅกๅจ
# ๅฏๅจ LSP ๆๅก
# ๆไฝฟ็จ stdio ๆจกๅผ
็ฑปๅๆฅ่ฏข CLI
# ๆฃๆฅๆไปถ็ฑปๅ
# ๆฅ่ฏข็ฌฆๅท็ฑปๅ
# ๅฏๅจ็ฑปๅๆฃๆฅๆๅก
# WebSocket ๆจกๅผ
๐๏ธ ๆถๆไบฎ็น
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ wootype ้ซๆง่ฝๆถๆ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Parser โ โ Salsa โ โ Type Store โ โ
โ โ (tree-sitterโโโโโถโ Database โโโโโถโ (ECS/Arche โ โ
โ โ โ โ โ โ type) โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโฌโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโ โ
โ โผ โผ โผ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Queries โ โ Cycles โ โ Cache โ โ
โ โ (tracked) โ โ Detection โ โ (LRU) โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ LSP / API Layer โ โ
โ โ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โ โ
โ โ โ gRPC โ โWebSocketโ โ HTTP โ โ LSP โ โ โ
โ โ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๆ ธๅฟๆๆฏ
| ๆๆฏ | ็จ้ | ๆๆ |
|---|---|---|
| Salsa-rs | ๅข้่ฎก็ฎๆกๆถ | ่ชๅจไพ่ต่ท่ธช๏ผ็ป็ฒๅบฆ็ผๅญ |
| ECS | ็ฑปๅๆฐๆฎๅญๅจ | Archetype ็ดงๅๅธๅฑ๏ผ็ผๅญๅๅฅฝ |
| DashMap | ๅนถๅ็ฑปๅ่กจ | ๆ ้่ฏป๏ผ1000+ ๅนถๅ |
| im::HashMap | ๅฟซ็ ง้็ฆป | ๆไน ๅๆฐๆฎ็ปๆ๏ผCopy-on-Write |
| Tree-sitter | Go ไปฃ็ ่งฃๆ | ็ฒพ็กฎใๅฟซ้ใๅฏๅข้ |
๐ก ไฝฟ็จๅบๆฏ
IDE ๅฎๆถ็ฑปๅๆฃๆฅ
็จๆท่พๅ
ฅๅญ็ฌฆ โ Salsa ๅข้ๆฃๆฅ โ ๆดๆฐ็ฑปๅๆ็คบ
ๅปถ่ฟ: ~50ns (็ผๅญๅฝไธญ)
ไฝ้ช: โ
้ถๆ็ฅๅปถ่ฟ
AI Agent ๆน้ๅๆ
// 1000+ AI Agent ๅนถๅๆฅ่ฏข็ฑปๅ
let universe = new;
for agent in 0..1000
ๆ็ปญ้ๆ็ฑปๅๆฃๆฅ
# CI ็ฎก้ไธญๅฟซ้็ฑปๅๆฃๆฅ
# ไธ woof ้ๆ
่ทจๅ ็ฑปๅๅๆ
# ๅๆๆฅๅฃๅฎ็ฐๅ
ณ็ณป
# ๆฃๆตๅพช็ฏ็ฑปๅไพ่ต
๐ ๆๆกฃ
๐ค ่ดก็ฎ
ๆฌข่ฟ่ดก็ฎ๏ผ่ฏทๆฅ็ CONTRIBUTING.mdใ
# ๅผๅ็ฏๅข
๐ ่ฎธๅฏ่ฏ
Apache License 2.0 ยฉ GWinfinity
Made with โค๏ธ and ๐ฆ Rust
"wootype ่ฎฉ Go ็ฑปๅๆฃๆฅๅฟซๅฐๅฟ่ฎฐๅฎๅญๅจใ"