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数据库接口 中排名

Download history 1/week @ 2024-05-14 6/week @ 2024-05-21 1/week @ 2024-05-28 2/week @ 2024-06-04 3/week @ 2024-06-11 1/week @ 2024-06-18

每月下载 335 次
2 crates 中使用

MIT 许可证

350KB
9K SLoC

开源库存管理器。

简单地、可靠地、快速地组织库存、员工、客户和订单。

使用 OpenStock,您可以管理

  • 库存控制
  • 采购订单
  • 销售点操作
  • 交易
  • 订单
  • 员工(带身份验证)

以 API 格式。

要查看可视化界面,请参阅 open-pos

OpenStock 是一个 Rust 项目,利用 rocketsea-orm 批量执行查询到存储的 DB。

OpenStock 目前处于测试版,因此许多功能仍被视为实验性,API 格式可能有很大的变化。因此,目前还不适合专业采用。

入门

OpenStock 可作为 crate 集成到您的项目或项目空间中,如果您希望使用它创建的类型系统。可以通过

cargo add open-stock

但是,对于默认设置,您可以通过以下步骤自行托管 API

  1. 创建一个空目录
  2. 在目录中创建一个 docker-compose.yaml(模板文件 在此处)。
  3. 根据需要添加/删除 open-posadminer
  4. 运行 docker compose up

建议添加数据库查看器,如 adminer,以供开发使用,以监控更改并跟踪您可能遇到的任何对象结构问题。

Docker Compose 将与 Docker Desktop 的任何安装预装,但如果您在 Linux 上且没有安装 Docker Compose,您可以从 此处 安装它。

请注意

  1. open-pos 不是必需的,但它是一个与 open-stock 标准一起提供的免费 POS 系统。您可以根据需要自由使用和/或修改它。

  2. 如果您从ARM系统启动服务,请使用ghcr.io/bennjii/open-stock:latest-armghcr.io/bennjii/open-pos:latest-arm以实现原生性能。

  3. 如果使用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