XU XUv0.8.8
EN

博客 / 生态进展

2026-10-13 · 扩展包

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 个包覆盖哪些服务

扩展包清单 现在可以直接进入每个包的中英文 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 为准。

使用 packages · MySQL API · PostgreSQL API · 限制与现状