如何从源码构建honker:SQLite扩展编译与多语言绑定的开发者完整指南
如何从源码构建honkerSQLite扩展编译与多语言绑定的开发者完整指南【免费下载链接】honkerSQLite extension bindings for Postgres NOTIFY/LISTEN semantics with durable queues, streams, pub/sub, and scheduler项目地址: https://gitcode.com/gh_mirrors/ho/honkerhonker 是一个 SQLite 扩展加多语言绑定的开源项目为 SQLite 带来 Postgres 风格的 NOTIFY/LISTEN 语义、持久化任务队列、事件流和定时调度无需额外部署 Redis 或消息中间件。本指南带你从零完成 honker 源码构建先编译核心的 SQLite 可加载扩展再分别构建 Python、Node.js、Go、Ruby 等各语言绑定并跑通测试验证。全程命令都很短跟着做即可。️ 开始之前先看懂 honker 仓库结构honker 是一个多语言 monorepo但分层非常清晰理解这三层后面的构建命令就一目了然了层级目录作用核心引擎honker-core/共享 Rust 引擎实现队列、流、cron 解析、共享监视器等SQLite 扩展honker-extension/编译产物就是.so/.dylib/.dll可加载扩展注册全部honker_*SQL 函数语言绑定packages/Python、Node、Go、Ruby、Bun、Elixir、C、.NET、JVM、Kotlin 等薄绑定根目录的 Makefile 把所有常用命令都封装成了make目标是最快的入手点CONTRIBUTING.md 里也给出了同样的目录说明。✅ 环境依赖清单一次装好不踩坑不同语言绑定需要的工具链不同建议按需安装Rust 工具链必须编译扩展和 Python 绑定都用它。注意 honker-extension/Cargo.toml 使用了edition 2024需要较新的 Rust 版本遇到 edition 报错时先升级 rustup。Python ≥ 3.11构建 Python 绑定时需要packages/honker/pyproject.toml 明确要求requires-python 3.11构建后端是maturin。Node.js npm构建 Node 绑定时需要。可选MavenJVM/Kotlin 绑定、Bun、Elixir、Go、.NET SDK——只在你需要对应绑定时才装。所有命令都在仓库根目录下执行先克隆代码git clone https://gitcode.com/gh_mirrors/ho/honker cd honker SQLite 扩展编译一行命令出产物整个项目里最关键的构建产物是 SQLite 可加载扩展。任何能执行SELECT load_extension(...)的 SQLite 客户端3.9加载它之后就自动拥有全部honker_*函数。编译命令只有一行cargo build --release -p honker-extension产物输出在target/release/下按平台命名为libhonker_ext.soLinux、libhonker_ext.dylibmacOS或honker_ext.dllWindows。命名规则就写在 honker-extension/Cargo.toml 的注释里crate-type [cdylib]且库名固定为honker_ext。两个可选编译特性默认构建走PRAGMA data_version轮询每 1 ms 检查一次跨进程唤醒延迟在毫秒级。如果想要更快的内核事件或共享内存唤醒路径可以加上特性重新编译cargo build --release -p honker-extension \ --features honker-core/kernel-watcher,honker-core/shm-fast-path这两个特性是 cfg 门控的默认不参与类型检查所以 Makefile 的lint目标会专门跑两遍 clippy 来覆盖它们。 Python 绑定编译maturin 两步走Python 绑定是全家桶包——发布轮子里同时包含 PyO3 原生模块和上面编译出的可加载扩展。官方推荐的构建方式就是一条 make 命令make build-pyo3它背后做了三件事cargo build --release -p honker-extension先编出扩展scripts/copy-python-extension.sh 按当前系统找到libhonker_ext.*并复制到packages/honker/python/honker/_lib/这个目录会被打进 wheel运行时extension_info()就从这里定位扩展maturin develop --release编译 PyO3 模块并装入当前虚拟环境。如果你只想快速验证扩展本身make build build-ext build-pyo3也可以一次全搞定。 其他语言绑定怎么构建各语言绑定都是薄封装直接复用honker-core或扩展产物。按你需要的语言选择对应小节Node.js / BunNode 绑定的原生库是静态链接的装包即带全部能力见 packages/honker-node/README.md。只有当你要把扩展加载到自己已有的 SQLite 连接比如 better-sqlite3、Drizzle时才需要可加载扩展文件——源码构建时把HONKER_EXTENSION_PATH环境变量指向上面编译出的libhonker_ext即可各绑定的查找顺序统一为显式路径参数 →HONKER_EXTENSION_PATH→ 内置副本这套契约在 BINDINGS.md 中有完整对照表。Go / Ruby / Elixir / C / .NET / JVM这些绑定都在 packages/ 目录下维护各自有独立的构建体系Go、Elixir绑定本体不包含扩展文件需要先把扩展编译好再按各自ExtensionPath()/Honker.Extension.path/0的查找规则定位Ruby、.NET、JVM、Kotlin原生资产打包在各自包内按各包 README 的说明用bundle、dotnet、mvn构建即可例如 Makefile 中的test-jvm就是先cargo build -p honker-extension再跑 Maven 测试。各绑定支持的功能面和唤醒路径差异直接查 BINDINGS.md 的 API 对照表不用逐个翻包内文档。 验证构建是否成功跑测试构建完别急着用先跑一遍测试确认环境没问题make test # Rust 核心 Python Node 快速路径 make test-all # 全量含慢速测试soak、真实 cron 边界单语言验证命令make test-rust、make test-python、make test-node、make test-jvm等含义都写在 Makefile 开头的help说明里。跨语言集成测试位于 tests/ 目录覆盖 Python 与 Ruby、Node 互操作等场景——这正是 honker 的核心卖点一种语言入队另一种语言认领任务。⚠️ 一个常见坑升级版本时必须同步刷新Cargo.lock因为 CI 和本地构建全程带--locked缺了对应 lock 行会直接报the lock file needs to be updated详见 CONTRIBUTING.md 的发布说明。本地跑cargo check --workspace即可自动刷新。 小结回顾一下 honker 源码构建的最短路径git clone仓库装好 Rust 工具链按需加 Python 3.11、Node 等cargo build --release -p honker-extension一行编出 SQLite 扩展make build-pyo3完成 Python 绑定的复制扩展 maturin 编译两步其他语言绑定按 packages/ 各 README 构建必要时用HONKER_EXTENSION_PATH指到自编译的扩展make test跑通快速测试构建即完成。构建完成后一个 SQLite 文件里就同时装下了队列、流、pub/sub 和调度器——这正是 honker单文件、零服务器设计的全部意义。【免费下载链接】honkerSQLite extension bindings for Postgres NOTIFY/LISTEN semantics with durable queues, streams, pub/sub, and scheduler项目地址: https://gitcode.com/gh_mirrors/ho/honker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

白帽子的技术成长之路:从手工挖洞到AI驱动的攻防工程化

白帽子的技术成长之路:从手工挖洞到AI驱动的攻防工程化

白帽子的技术成长之路:从手工挖洞到AI驱动的攻防工程化 安全能力本质上是一把双刃剑。同样的技术储备,可以用来守护系统,也可能沦为破坏社会的工具。在SRC(安全应急响应中心)生态中,一名白帽子的成长&…

2026/10/2 18:04:45 阅读更多 →
钢化玻璃自爆风险的量化分析:NiS 相变机理、泊松模型与中空玻璃边部密封要点

钢化玻璃自爆风险的量化分析:NiS 相变机理、泊松模型与中空玻璃边部密封要点

住宅与商业项目中,"钢化玻璃自爆率千分之三"是一种常见口径。该表述在工程上存在三个缺陷: 缺分母:未说明统计基准是"片"“平方米"还是"吨”,无法跨规格换算; 缺规格:未区分…

2026/10/3 15:09:36 阅读更多 →
C++ Asio TCP粘包处理实战:长度前缀分帧协议完全解析

C++ Asio TCP粘包处理实战:长度前缀分帧协议完全解析

写C的Asio服务端,十个里有八个会撞上“粘包”这个坑。断断续续写了好几年网络程序,从echo服务一直做到游戏登录服务器,这篇算是一个基础篇里的必修课:把TCP流里一条条消息干干净净地拎出来。先说结论:粘包不是Asio的问…

2026/10/2 17:10:49 阅读更多 →

最新新闻

MobileNetV3+LR-ASPP道路语义分割实战指南

MobileNetV3+LR-ASPP道路语义分割实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 5:57:08 阅读更多 →
Matlab实现1976国际标准大气模型:从公式推导到代码实现

Matlab实现1976国际标准大气模型:从公式推导到代码实现

打开气象数据手册,翻到“国际标准大气”那一章,你会发现一堆密密麻麻的表格:高度、温度、压强、密度,从海平面一路排到86公里甚至更高。做飞行器性能估算、导弹弹道计算、发动机推力分析的时候,这些数据是基础中的基础…

2026/10/4 5:57:08 阅读更多 →
用 Electron + Go 打造跨平台剪贴板管理器:监听、检索与隐私保护

用 Electron + Go 打造跨平台剪贴板管理器:监听、检索与隐私保护

1. 做这个项目的起因与定位我每天的工作里,有大量时间花在复制粘贴上:从文档里抄一段说明发给同事,把网上的代码片段存下来,把聊天里的地址整理进任务清单。时间久了你会发现,系统自带的剪贴板只能记住最后一次复制&am…

2026/10/4 5:57:08 阅读更多 →
基于MySQL+Java+Swing的学生宿舍管理系统课设实战指南

基于MySQL+Java+Swing的学生宿舍管理系统课设实战指南

简介:面向高校数据库课程设计与Java实训场景,这份资料是一套基于MySQL与Java Swing开发的学生宿舍管理系统,覆盖学生信息管理、宿舍分配、管理员权限控制、系统登录等核心功能模块,适合计算机专业学生用于课程设计参考或在此基础上…

2026/10/4 5:57:08 阅读更多 →
LS-DYNA岩石爆破数值模拟:建模流程、关键参数与踩坑指南

LS-DYNA岩石爆破数值模拟:建模流程、关键参数与踩坑指南

做岩石爆破数值模拟这几年,我最常被刚入门的朋友问到的一个问题是:LSDYNA到底怎么才能把岩石炸开,而且炸得跟现场差不多?其实这句话背后藏着一整条知识链:从炸药的爆轰参数,到岩石在高应变率下的破坏准则&a…

2026/10/4 5:57:08 阅读更多 →
Java Swing+MySQL物资信息管理系统全解析:从建库到答辩

Java Swing+MySQL物资信息管理系统全解析:从建库到答辩

简介:面向Java课程设计与期末大作业场景的物资信息管理系统完整项目,以Java Swing构建桌面端界面、MySQL作为数据存储,并配有数据库脚本与设计文档。系统覆盖登录认证、用户管理、基础信息维护、物资出入库、查询统计等典型模块,难…

2026/10/4 5:56:08 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →