# Ironleaf Commerce **Repository Path**: cola9104/ironleaf-commerce ## Basic Information - **Project Name**: Ironleaf Commerce - **Description**: 开源rust开发的前后端外贸独立站点 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-27 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ironleaf Commerce #### 介绍 Ironleaf Commerce 是一个参考 Broadleaf Commerce 领域拆分思路、但完全使用 Rust 技术栈实现的前后端分离外贸独立站骨架。 当前版本聚焦以下技术组合: - `Dioxus`:前端 Storefront,目标运行在 WebAssembly - `Axum`:后端 HTTP API - `SeaORM`:数据库访问与实体映射 - `Tokio`:异步运行时 - `Tonic`:服务内部库存 gRPC - `Tower` / `tower-http`:CORS、压缩、链路追踪等中间件 - `Redis`:首页目录缓存 - `PostgreSQL`:默认关系数据库 #### 目标能力 - Broadleaf 风格的清晰领域边界:目录、商品、库存、购物车 - 前后端解耦:Storefront 仅通过 HTTP API 读取数据 - 为后续拆分定价、订单、内容、客户、搜索等服务预留边界 - 单仓库开发体验,便于本地启动和后续微服务拆分 #### 软件架构 ```text apps/ api-server Axum API + Tonic gRPC 入口 storefront-web Dioxus WASM Storefront crates/ ironleaf-core 配置、DTO、统一错误 ironleaf-db SeaORM 实体与数据库连接 ironleaf-migration 数据库迁移 ironleaf-proto gRPC Proto 与生成代码 ironleaf-services 目录、购物车、库存、种子数据服务 proto/ commerce.proto 库存 gRPC 定义 deploy/ docker-compose.yml PostgreSQL + Redis 本地依赖 ``` 后端启动后会同时运行: - `HTTP API`: `http://127.0.0.1:18080` - `gRPC Inventory`: `127.0.0.1:15051` 核心 API: - `GET /api/home` - `GET /api/categories` - `GET /api/products?query=&category=` - `GET /api/products/{slug}` - `GET /api/inventory/{sku}` - `POST /api/cart` - `GET /api/cart/{cart_id}` - `POST /api/cart/{cart_id}/items` - `PUT /api/cart/{cart_id}/items/{sku}` - `DELETE /api/cart/{cart_id}/items/{sku}` - `POST /api/orders?cart_id={cart_id}` - `GET /api/orders?email={email}` - `GET /api/orders/{order_id}` #### 安装教程 1. 启动基础依赖 ```bash docker compose -f deploy/docker-compose.yml up -d ``` 2. 复制环境变量 ```bash cp .env.example .env ``` 3. 启动后端 API ```bash cargo run -p api-server ``` 4. 单独编译前端 WASM ```bash cargo build -p storefront-web --target wasm32-unknown-unknown ``` #### 使用说明 1. 后端首次启动会自动执行迁移并写入演示目录数据。 2. 前端 `storefront-web` 读取 `IRONLEAF_API_BASE_URL` 指向后端 API。 3. 当前演示重点是商品目录、商品详情、库存查询、购物车修改、结账提交和订单确认。 4. 如需继续贴近 Broadleaf,可以在此基础上继续扩展: - Admin/backoffice - 定价和促销 - 订单与支付 - 客户与账号体系 - CMS / 内容编排 - 搜索与筛选 #### Broadleaf 对照思路 Broadleaf 原仓库大致分为 `common / core / admin / integration` 等层次。当前 Ironleaf 的对应思路是: - `ironleaf-core` 对应共享基础能力 - `ironleaf-services` 对应业务核心域 - `apps/api-server` 对应集成层与 API 暴露 - `apps/storefront-web` 对应前台站点 这种映射不是逐模块照搬,而是把 Broadleaf 的领域拆分思想落到 Rust 的工程组织中。 #### 当前已实现闭环 - 首页与精选目录 - 商品搜索与分类筛选 - 商品详情与库存查询 - 相关商品推荐 - 本地持久化购物车 - 购物车增减数量与删除 - 提交订单询盘 - 按邮箱查询历史订单 - 订单确认页 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)