news 2026/9/11 23:10:59

Qdrant 怎么搭建本地开发环境?Rust 工具链与 protoc 依赖安装及首次编译运行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qdrant 怎么搭建本地开发环境?Rust 工具链与 protoc 依赖安装及首次编译运行

Qdrant 怎么搭建本地开发环境?Rust 工具链与 protoc 依赖安装及首次编译运行

【免费下载链接】qdrantQdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/项目地址: https://gitcode.com/GitHub_Trending/qd/qdrant

如果你需要修改 Qdrant 源码、验证自己的改动,或想在没有 Docker 的环境下运行一个自己编译的向量数据库实例,就要先搭好本地开发环境。Qdrant 的官方开发文档 docs/DEVELOPMENT.md 给出的本地开发路径适用于 Linux/Debian/MacOS:安装 Rust 工具链与protoc(Protocol Buffers 编译器)后,用cargo build --release从源码编译出qdrant二进制并直接运行,服务会监听在localhost:6333。本文按文档中的顺序走完这条路径。

安装 Rust 工具链

开发环境的第一项要求是 Rust。按 Rust 官方安装指引(rustup 方式)安装 Rust 后,再补装rustfmt组件,项目代码格式检查依赖它:

rustup component add rustfmt

安装系统依赖

在 Linux/Debian 环境下,文档要求用apt-get安装一组构建依赖,包括curlunzipgcc-multilibclangcmakejq,以及 aarch64 交叉工具链包:

sudo apt-get update -y sudo apt-get upgrade -y sudo apt-get install -y curl unzip gcc-multilib \ clang cmake jq \ g++-9-aarch64-linux-gnu \ gcc-9-aarch64-linux-gnu

这条命令来自 docs/DEVELOPMENT.md 的原文,文档没有为 x86_64 与 aarch64 分别给出不同的包列表,照原文执行即可。macOS 下文档没有给出等价的包管理命令,对应的替代方式是下文介绍 Nix 环境。

安装 protoc

Qdrant 的 gRPC 协议定义在 lib/api/src/grpc/proto 下,cargo build时通过 tonic/prost 生成 Rust 类型,而这一步依赖系统里存在protoc。文档要求安装 22.2 版本:

PROTOC_VERSION=22.2 PKG_NAME=$(uname -s | awk '{print ($1 == "Darwin") ? "osx-universal_binary" : (($1 == "Linux") ? "linux-x86_64" : "")}') # 下载 protoc 发布包 curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-$PKG_NAME.zip unzip protoc-$PROTOC_VERSION-$PKG_NAME.zip -d $HOME/.local export PATH="$PATH:$HOME/.local/bin" # 删除下载的压缩包(可选) rm protoc-$PROTOC_VERSION-$PKG_NAME.zip # 验证安装 protoc --version

两个需要注意的点:

  • export PATH只对当前 shell 生效。如果关闭终端后重新打开,protoc会找不到,需要再次执行这一行或把它写入你的 shell 配置文件。
  • 文档给出的验证方式就是protoc --version,能打印出版本号即说明protoc已可用,后续cargo build会用到它。

首次编译

依赖就绪后,在仓库根目录执行:

cargo build --release --bin qdrant

这是 release 构建,首次编译会拉取并编译整个 workspace 的依赖,耗时较长。构建成功后二进制位于./target/release/qdrant

运行与验证

在仓库根目录启动编译出的服务:

./target/release/qdrant

启动后终端会打印一段欢迎横幅(见 src/greeting.rs),其中包含当前版本号、git 构建提交号,以及一行Access web UI at http://localhost:6333/dashboard,说明 HTTP 服务已在本机 6333 端口就绪。

服务起来之后,有两种由仓库文档直接给出的验证方式:

  1. 跑一遍基础 API 测试。仓库自带 tests/basic_api_test.sh,脚本头部注释写明它检查 Qdrant 是否按预期响应 README 中列出的全部 API,QDRANT_HOST默认就是localhost:6333

    ./tests/basic_api_test.sh
  2. 手动发一个创建集合的请求。下面的 payload 取自上述脚本中的真实请求(文档示例):

    curl -X PUT "http://localhost:6333/collections/test_collection" \ -H 'Content-Type: application/json' \ --fail -s \ --data-raw '{ "vectors": { "size": 4, "distance": "Dot" }, "optimizers_config": { "default_segment_number": 2 }, "replication_factor": 2 }' | jq

    --fail的 curl 在请求失败时会非零退出,返回的 JSON 中result.statuscreated/exists说明集合 API 工作正常。验证完成后可用DELETE /collections/test_collection清理。

可选替代路径:Nix 环境

如果你使用 Nix 包管理器(Linux、macOS 或 WWSL2 均可),可以跳过上面手动装依赖的步骤:在仓库根目录运行nix-shell,即可进入一个装好 Rust 构建依赖、Python 测试和./tools脚本所需工具的 shell。仓库的 shell.nix 里列明了这套环境包含的组件(cmake、protobuf、ccache/sccache 缓存、uv 等)。文档说明该 shell 同时覆盖 Rust 代码构建与 Python 测试两类依赖。

编译通过后接着做什么

本地环境跑通之后,docs/DEVELOPMENT.md 还给出了两条与开发直接相关的后续操作:

  • 跑集成测试:安装 uv 后,用uv --project tests run pytest tests/openapiuv --project tests run pytest tests/consensus_tests分别跑 OpenAPI 与共识测试。
  • 同步 Web UI:Web UI 在独立仓库中,可用./tools/sync-web-ui.sh把它同步到本仓库的static目录,启动后就能通过http://localhost:6333/dashboard访问界面。

另外提醒:如果要给上游提 PR,docs/CONTRIBUTING.md 要求 PR 必须指向dev分支(master只用于发版),并在提交前执行cargo +nightly fmt --allcargo clippy --workspace --all-features保证格式与 lint 通过。

【免费下载链接】qdrantQdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/项目地址: https://gitcode.com/GitHub_Trending/qd/qdrant

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 23:10:57

如何在本地配置 PostHog Tasks 后台代理和 GitHub App 集成?

如何在本地配置 PostHog Tasks 后台代理和 GitHub App 集成? 【免费下载链接】posthog :hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session replay, flags, experiment…

作者头像 李华
网站建设 2026/9/11 23:10:35

电力巡检目标检测数据集:5800+航拍图支持8类小目标识别

简介:本资源是面向电力巡检AI算法研发者与计算机视觉初学者的高质量输电线路航拍图像数据集,聚焦绝缘子缺陷识别、航空警示球检测、鸟巢定位等8类典型电力设施异常目标检测任务,可直接用于目标检测模型训练与评估。数据集共5800余张无人机高清…

作者头像 李华
网站建设 2026/9/11 23:07:10

直肠息肉YOLO检测数据集:医学图像目标检测实战指南

简介:本资源是面向医学图像AI开发者与计算机视觉研究者的直肠息肉检测专用数据集,专为YOLO系列目标检测模型训练与验证设计,适用于结直肠癌辅助诊断算法研发、内镜影像分析课程实践及医疗AI竞赛备赛。压缩包共19795个文件,含7804张…

作者头像 李华
网站建设 2026/9/11 23:06:33

测试工程师技能栈更新与工具选型指南

1. 为什么测试工程师需要持续更新技能栈? 在软件研发效能持续提升的今天,测试工程师的角色正在发生根本性转变。十年前的手工测试用例执行占比超过70%,而根据2023年DevOps状态报告显示,自动化测试在头部科技企业的覆盖率已达到85%…

作者头像 李华
网站建设 2026/9/11 23:06:32

SystemInformer 汉化指南:3 步把系统监控工具改成中文界面

SystemInformer 汉化指南:3 步把系统监控工具改成中文界面 【免费下载链接】systeminformer A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars & Solu…

作者头像 李华
网站建设 2026/9/11 23:04:37

YOLOv7轻量级人体姿态估计实战:检测+关键点联合部署

简介:本资源面向计算机视觉方向的深度学习开发者与算法工程师,聚焦YOLOv7框架下人体姿态估计这一前沿多任务场景,解决目标检测与关键点定位联合建模的理解与复现难题。压缩包共4个文件(2个动态演示GIF、1个Python主程序yolov7_key…

作者头像 李华