25 个版本

0.2.25 2024年6月20日
0.2.23 2024年3月11日
0.2.22 2023年9月30日
0.2.16 2023年7月27日
0.2.1 2022年6月16日

#682数据库接口

Download history 389/week @ 2024-04-15 491/week @ 2024-04-22 464/week @ 2024-04-29 140/week @ 2024-05-06 406/week @ 2024-05-13 146/week @ 2024-05-20 81/week @ 2024-05-27 319/week @ 2024-06-03 137/week @ 2024-06-10 261/week @ 2024-06-17 109/week @ 2024-06-24 10/week @ 2024-07-01 59/week @ 2024-07-08 190/week @ 2024-07-15 74/week @ 2024-07-22 213/week @ 2024-07-29

每月下载量:536
用于 8 个包(直接使用3个)

MIT/Apache

45KB
1K SLoC

mdsn

M-DSN:一个多地址 DSN(数据源名称)解析器。

M-DSN 支持两种 DSN 格式

  1. <驱动程序>[+<协议>]://<username>:<password>@<addresses>/<database>?<params>
  2. <驱动程序>[+<协议>]://<username>:<password>@<fragment>?<params>
  3. <驱动程序>://<username>:<password>@<protocol>(<addresses>)/<database>?<params>

所有项目都将解析为结构体 Dsn

解析器

use mdsn::Dsn;

// The two styles are equivalent.
let dsn = Dsn::parse("taos://root:taosdata@host1:6030,host2:6030/db")?;
let dsn: Dsn = "taos://root:taosdata@host1:6030,host2:6030/db".parse()?;

assert_eq!(dsn.driver, "taos");
assert_eq!(dsn.username.unwrap(), "root");
assert_eq!(dsn.password.unwrap(), "taosdata");
assert_eq!(dsn.database.unwrap(), "db");
assert_eq!(dsn.addresses.len(), 2);
assert_eq!(dsn.addresses, vec![
    mdsn::Address::new("host1", 6030),
    mdsn::Address::new("host2", 6030),
]);

DSN 示例

TDengine 驱动程序的 DSN taos

taos://root:taosdata@localhost:6030/db?timezone=Asia/Shanghai&asyncLog=1

具有多地址

taos://root:taosdata@host1:6030,host2:6030/db?timezone=Asia/Shanghai

Unix 套接字 DSN

unix:///path/to/unix.sock?param1=value

带有 URL 编码套接字目录路径的 postgresql DSN。

postgresql://%2Fvar%2Flib%2Fpostgresql/db

sqlite 数据库文件 DSN,注意你必须使用前缀 ./ 对于相对路径文件。

sqlite://./file.db

许可证:MIT OR Apache-2.0

依赖项

~2.9–5MB
~89K SLoC