Blog / Ecosystem progress
packages 0.1.1: 29 packages, one root module
Concrete drivers for databases, messaging, search, and object storage now live in the separate packages repository. The standard library retains shared contracts such as database/sql pooling, transactions, and driver interfaces. Each application declares the services it needs.
Versions belong to the root module; imports select packages
The root xu.xun manages the entire github.com/xulang-org/packages module. mysql, postgres, and other directories are internal packages with no independent module manifests. Declare the root module in require and import the full subpackage path with an explicit alias.
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()
}
This example places app beside a local packages checkout. Remote sources can use a reviewed Git commit or an exact SemVer minimum requirement when the matching version tag is available. See Modules and dependencies for installation, MVS, and locking.
Services covered by the 29 packages
- Databases and caches: mysql, postgres, sqlite, clickhouse, mongodb, cassandra, neo4j, redis, memcached.
- Messaging and coordination: nats, mqtt, rabbitmq, kafka, etcd, consul, zookeeper, nacos.
- Search, vectors, and observability: elasticsearch, meilisearch, milvus, qdrant, chroma, influxdb, prometheus.
- Storage and protocols: s3, grpc, websocket, dns, smtp.
The package catalog now links to bilingual API pages with public declarations extracted from current sources.
Support is defined per package
The catalog does not imply every protocol feature is complete. MySQL supports mysql_native_password and rejects TLS and caching_sha2_password. PostgreSQL does not negotiate TLS. gRPC supports bounded cleartext unary calls; higher-level pool reuse remains pending.
SQLite uses the C API through xu-c-1. Run make native in a local packages checkout to generate native slices for the target. The configured targets are macOS arm64/x64. Git sources exclude the generated sqlite.xulib, so remote distribution requires a module archive containing native resources.
These documented boundaries help applications choose suitable drivers. The full contract remains in each package’s API and source README.
Use packages · MySQL API · PostgreSQL API · Status & Limitations