20 个版本
0.1.20 | 2024年2月22日 |
---|---|
0.1.19 | 2023年12月9日 |
0.1.18 | 2023年10月18日 |
0.1.16 | 2023年9月28日 |
0.1.4 | 2023年4月9日 |
#436 在 数据库接口 中排名
每月下载 335 次
在 2 crates 中使用
350KB
9K SLoC
开源库存管理器。
简单地、可靠地、快速地组织库存、员工、客户和订单。
使用 OpenStock
,您可以管理
- 库存控制
- 采购订单
- 销售点操作
- 交易
- 订单
- 员工(带身份验证)
以 API 格式。
要查看可视化界面,请参阅
open-pos
。
OpenStock 是一个 Rust 项目,利用 rocket
和 sea-orm
批量执行查询到存储的 DB。
OpenStock 目前处于测试版,因此许多功能仍被视为实验性,API 格式可能有很大的变化。因此,目前还不适合专业采用。
入门
OpenStock 可作为 crate 集成到您的项目或项目空间中,如果您希望使用它创建的类型系统。可以通过
cargo add open-stock
但是,对于默认设置,您可以通过以下步骤自行托管 API
- 创建一个空目录
- 在目录中创建一个
docker-compose.yaml
(模板文件 在此处)。 - 根据需要添加/删除
open-pos
和adminer
。 - 运行
docker compose up
。
建议添加数据库查看器,如 adminer,以供开发使用,以监控更改并跟踪您可能遇到的任何对象结构问题。
Docker Compose 将与 Docker Desktop 的任何安装预装,但如果您在 Linux 上且没有安装 Docker Compose,您可以从 此处 安装它。
请注意
-
open-pos
不是必需的,但它是一个与open-stock
标准一起提供的免费 POS 系统。您可以根据需要自由使用和/或修改它。 -
如果您从ARM系统启动服务,请使用
ghcr.io/bennjii/open-stock:latest-arm
和ghcr.io/bennjii/open-pos:latest-arm
以实现原生性能。 -
如果使用
open-pos
,则NEXT_PUBLIC_API_URL
环境URL指向open-stock
API所在的位置。这是CORS所必需的,并且是一个必填字段。它可以是域名或IP地址。
设置方法
考虑您希望如何设置您的提供商非常重要。以下显示了两种设置方法。集中式方法将有一个服务器作为“真相之源”,每个新的零售店都将与此服务器交互。这是最常见的方法,也是默认实现。
或者,可以采用分片方法,在每个商店位置或地区存在复制层,以减少由于大物理距离造成的服务器连接时间。
请注意,分片方法尚未实现,但计划在未来发布。
迁移信息
如果您需要从现有的提供商迁移数据,可以使用migrator实用程序。
如果您正在使用迁移实用程序尚未覆盖的提供商,您可以通过发布带有标签feature-request
和标题+lang: <Existing Provider Name>
的问题来请求实现,并在问题中提供任何相关联的信息以帮助我们实现迁移。或者,您可以自行实现类型转换,并提交一个拉取请求。
为什么是Rust?
Rust是这个项目的理想选择,因为它旨在产生可靠和一致的结果,同时处理各种形式的输入。Rust提供了高性能,尽管开发速度较慢。然而,对于这个项目,这种权衡是值得的。因为Rust最近已经成为一个更加成熟的编程语言,数据库ORM(如sea-orm(基于SQLx)和Diesel)构建良好,并在格式化、读取、写入和从数据库中传递信息方面提供高程度的类型安全性——防止格式不良的条目和无效的列值。
依赖项
23-59MB
~1M SLoC