18 个版本 (11 个破坏性版本)

0.71.0 2024年7月27日
0.70.0 2024年1月10日
0.69.1 2024年1月7日
0.68.0 2023年10月31日
0.61.0 2020年11月14日

#1974数据库接口

Download history 9/week @ 2024-04-15 22/week @ 2024-04-22 7/week @ 2024-04-29 9/week @ 2024-05-06 19/week @ 2024-05-20 16/week @ 2024-05-27 24/week @ 2024-06-03 21/week @ 2024-06-10 14/week @ 2024-06-17 18/week @ 2024-06-24 8/week @ 2024-07-01 12/week @ 2024-07-08 20/week @ 2024-07-15 157/week @ 2024-07-22 99/week @ 2024-07-29

每月下载量 296
8 个包中使用 (通过 c3p0)

MIT 许可证

93KB
2.5K SLoC

crates.io Build Status codecov

"很高兴认识你。我是 C-3p0,JSON-DB 关系。"

C3p0: "你好,我不相信我们还没有见过。很高兴认识你。我是 C-3p0,JSON-DB 关系。"

你喜欢玩 Postgres 吗?

你认为 JSON 很出色,但它在你的数据库代码中处理得更好吗?

无论你更喜欢 rust-postgres 还是 Diesel,C3p0 都为你提供了一套工具,以简化数据库工作流程中的 JSON 集成。

所以,如果你想

  • 使用任何 serde_json::Serializable 结构体作为你的 Diesel 模型中的有效字段
  • 无缝地将任何 serde_json::Serializable 结构体集成到你的 rust-postgres 代码中
  • rust-postgres 中自动升级架构,就像在 Diesel 迁移 中一样

那么请继续阅读!

C3p0 不是什么

即使它提供了执行基本 CRUD 操作的高级接口,它也不是 ORM,也不是 Diesel 或类似产品的替代品。

C3p0: "我明白了,Sir Luke"。

太棒了!

它的工作原理

C3p0 由一组独立的 Rust 小型库组成,用于

  • 简化 JSON-Postgres 交互
  • 促进通用架构管理

C3p0 组件

C3p0 未准备好的组件

  • c3p0_diesel 这将是基于 Diesel 的等效 c3p0_pg 构建。

先决条件

您必须安装 Rust 版本 1.33 或更高版本。

历史

第一个 C3p0 版本是用 Java 编写的...

C3p0: "如果你告诉我关于这个 Jabba the Hutt 的一半事情,你可能就会短路了。"

我说 "Java","Ja"-"va"。请集中注意力,谢谢!

无论如何,Java 正在慢慢变得过时,我们对它有点厌烦了。

C3p0: "他们使用一个非常原始的方言"。

的确。

相反,我们对 Rust 编程语言的兴趣随着时间的推移一直在增长;因此,我们尝试了它,并最终将代码的一些关键部分迁移到了 Rust。

简而言之,我们爱上了它。

我们认为Rust是一种更全面的编程语言。

C3p0:“城市的中央计算机告诉你了?”

是的!它使我们能够实现更好的资源利用,避免垃圾收集器和虚拟机,同时获得更好的并发性和安全性。

我可以在生产中使用它吗?

:“别担心,一切都会好起来的。相信我。”

C3p0:“每次他使用那个短语,我的电路就会变得不稳定!”

: ???

C3p0:“阿图说生存的机会是725比1。”

依赖项

~34–45MB
~789K SLoC