微风沙沙作响
一个用于语义代码分块和搜索的高性能Rust库,具有Python和Node.js的绑定。使用树型解析器将代码智能地拆分为有意义的语义单元,同时保留上下文并提取丰富的元数据。
特性
- 语义代码分块:使用树形图在函数/类边界拆分代码
- 100多种语言:通过nvim-treesitter查询提供支持
- 代码搜索:使用向量嵌入的语义搜索
- 多重绑定:Rust CLI、Python(PyO3)和Node.js(NAPI)
- 流媒体API:高效处理大文件
- API服务器:支持OpenAPI和MCP协议的HTTP/HTTPS
安装
目前,CI构建还没有生成二进制文件。但您可以从源代码安装该项目。
从源代码构建
获得所需工具的最简单方法是使用: 布置。但要使构建工作正常,我们需要:
- 锈蚀1.84或以上
- LLVM安装工作(树型解析器使用C或C++)
git clone https://github.com/casualjim/breeze-rustle
cd breeze-rustle
bun install
# npm install
# Install dependencies and build
mise build安装CLI
# CPU based local embeddings
cargo install --path crates/breeze
# Cuda based local embeddings
cargo install --path crates/breeze --features cuda注意:这将需要很长时间,因为我们有许多树型解析器需要链接。
用法
CLI命令
# Initialize configuration
breeze init
# Start the API server
breeze serve
# Index a codebase
breeze project create
# Search indexed code
breeze search --project PROJECT_ROOT
配置
创建配置文件或使用 breeze init 生成一个。在以下位置(按顺序)搜索配置文件:
.breeze.toml(当前目录)~/Library/Application Support/com.github.casualjim.breeze.server/config.toml(仅限macOS)~/.config/breeze/config.toml(用户配置)/etc/breeze/config.toml(全系统)/usr/share/breeze/config.toml(全系统)
您还可以使用以下命令指定自定义配置路径 --config 旗帜。请参阅 默认配置 在存储库中。
嵌入提供者
此应用程序可以通过onnxruntime使用本地嵌入。从技术上讲,我们也支持蜡烛变压器,但它们真的很慢,因为蜡烛在将嵌入的数字复制回CPU空间之前会等待所有GPU任务被释放,这会导致很大的延迟。
我们提供了一个本地嵌入引擎,这样您就可以立即开始,但您可能需要使用API。您将获得更高质量的嵌入和更快的索引。
远程嵌入提供商被假设为与OpenAI API兼容,适用于大多数提供商,如:vllm、infinity、ollama、llamacpp以及voyage、cohere。..
发展
# Run tests
mise test
# Build the project
mise build
# Clean build artifacts
mise clean建筑
该项目被组织为一个包含多个crate的Rust工作区:
breeze-CLI应用程序breeze-chunkers-使用树保姆的核心组块库breeze-grammars-语法编译系统breeze-indexer-代码索引和嵌入breeze-server-HTTP/HTTPS API服务器breeze-py-Python绑定breeze-napi-Node.js绑定
演出
对我来说,在我的macbook M4 Pro上,用 cargo install --path crates/breeze --features metal.
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
