博客 / 生态进展
packages 0.1.1:29 个扩展包,一个根模块
数据库、消息系统、检索服务和对象存储的具体驱动已迁入独立的 packages 仓库。标准库保留通用契约,例如 database/sql 的连接池、事务和驱动接口;使用哪个服务,由应用自己的依赖声明决定。
根模块负责版本,子包负责导入
仓库根的 xu.xun 管理整个 github.com/xulang-org/packages 模块。mysql、postgres 等目录是内部包,不再各自维护模块清单。项目的 require 写根模块,源码导入完整子包路径并指定别名。
module: app
version: !ver 0.1.0
xu: !ver 0.8.4
require:
"github.com/xulang-org/packages": file:../packages
@main
mysql #github.com/xulang-org/packages/mysql
postgres #github.com/xulang-org/packages/postgres
fn main() {
_ := mysql.driver()
_ := postgres.driver()
}
上例让 app 与本机 packages 检出目录同级。远程来源可改为审查过的 Git 提交;来源已有对应版本标签时,也可声明精确版本最低要求。安装、MVS 与锁文件行为见 模块与依赖。
29 个包覆盖哪些服务
- 数据库与缓存:mysql、postgres、sqlite、clickhouse、mongodb、cassandra、neo4j、redis、memcached。
- 消息与协调:nats、mqtt、rabbitmq、kafka、etcd、consul、zookeeper、nacos。
- 检索、向量与观测:elasticsearch、meilisearch、milvus、qdrant、chroma、influxdb、prometheus。
- 存储与协议:s3、grpc、websocket、dns、smtp。
扩展包清单 现在可以直接进入每个包的中英文 API,查看从当前源码提取的公开声明。
支持范围按包说明
包清单不代表所有协议特性均已完成。MySQL 当前支持 mysql_native_password,拒绝 TLS 和 caching_sha2_password;PostgreSQL 尚不协商 TLS;gRPC 支持有界明文 unary 调用,高层连接池复用仍待完善。
SQLite 通过 xu-c-1 使用 C API,需要先在本机 packages 根目录执行 make native,生成匹配目标的原生切片。当前配置 macOS arm64/x64;Git 来源不包含忽略的 sqlite.xulib,远程发行需要含原生资源的模块归档。
将这些边界写进文档,应用才能按实际需要选择驱动。完整契约仍以各包 API 与源码 README 为准。