XU XUv0.8.8
EN

文档

扩展包

packages 仓库 独立于编译器和标准库。根 xu.xun 统一管理一个模块,mysql、postgres 等目录是它的内部包,不再分别维护模块清单。

声明依赖

本机让 app 与 packages 仓库同级:

module: app
version: !ver 0.1.0
xu: !ver 0.8.8
require:
  "github.com/xulang-org/packages": file:../packages
xu install app
xu check app/main.xu --offline

远程版本、Git 来源、MVS、锁定与冻结构建

使用 SQL 驱动

标准库 database/sql 提供连接池、事务、结果集和驱动契约,mysql/postgres/sqlite 的具体驱动由 packages 提供。下面示例需要已启动且使用 mysql_native_password 认证的 MySQL 服务:

@main
#database/sql
mysql #github.com/xulang-org/packages/mysql

fn main() int {
    mut db := sql.open(mysql.driver(), "user:password@tcp(127.0.0.1:3306)/demo?tls=false")
    db.ping() or (err) {
        println(err.msg())
        << 1
    }
    db.close() or (err) {
        println(err.msg())
        << 1
    }
    << 0
}

外部路径须明确别名:mysql #github.com/xulang-org/packages/mysql。完整路径是包身份,#mysql 不是官方扩展包的导入方式。

包清单

类别包 / API服务
数据库mysqlMySQL / MariaDB
数据库postgresPostgreSQL
数据库sqliteSQLite
数据库clickhouseClickHouse
数据库mongodbMongoDB
数据库cassandraCassandra
数据库neo4jNeo4j
缓存redisRedis
缓存memcachedMemcached
消息natsNATS
消息mqttMQTT
消息rabbitmqRabbitMQ
消息kafkaKafka
协调etcdetcd
协调consulConsul
协调zookeeperZooKeeper
协调nacosNacos
检索elasticsearchElasticsearch / OpenSearch
检索meilisearchMeilisearch
观测influxdbInfluxDB
观测prometheusPrometheus
向量milvusMilvus
向量qdrantQdrant
向量chromaChroma
存储s3S3 / MinIO
协议grpcgRPC / HTTP/2
协议websocketWebSocket
协议dnsDNS
协议smtpSMTP

当前边界

各包的协议、认证、TLS 和连接池支持范围不同。MySQL 当前拒绝 TLS 和 caching_sha2_password;PostgreSQL 不协商 TLS;gRPC 支持有界明文 unary 调用,高层连接池复用仍待完善。具体范围见各包 API 与源码 README。

SQLite 通过 xu-c-1 使用原生 C 桥接,本机在 packages 仓库根先运行 make native。当前配置 macOS arm64/x64 切片,其他目标需要对应工具链和切片。Git 来源不包含生成的 sqlite.xulib;远程 SQLite 需要包含原生资源的模块归档,该发行流程尚待发布。