RoboTech-RS is a backend service toolkit written in Rust. This project provides commonly used tools for RESTful controller layer and business logic layer.
This project organizes functional modules through Rust's feature flags mechanism:
apifeature (enabled by default): Contains API interfaces and data transfer objects, providing a unified response object (RO) structuresvrfeature: Implements server-side business logic, including controller (ctrl), service (svc), and constant (cst) modules
- Rust 2024 edition
- Actix-web as Web framework (in svr feature)
- SeaORM as database ORM (in svr feature)
- Utoipa for OpenAPI documentation generation (in api feature)
- Serde for serialization/deserialization (in api feature)
- Chrono for time processing (in api feature)
This project uses feature flags to control dependencies and functionality:
api(default): Enables API-related features, including response objects (RO) and data transfersvr: Enables server-side features, including controllers, services, and database operations
The api feature is enabled by default. To use server-side features, you can enable both features:
[dependencies.robotech]
version = "0.3.2"
features = ["api", "svr"]This project adopts a unified response format, where all API responses follow this structure:
{
"result": 1,
"msg": "Operation completed successfully",
"timestamp": 1700000000000,
"extra": {},
"detail": "Optional detailed information",
"code": "Optional business code"
}API Response Fields Explanation:
result: Response result (Success, IllegalArgument, Warn, Fail)msg: Response messagetimestamp: Timestampextra: Optional extra datadetail: Optional detailed informationcode: Optional business code
- Rust 1.70 or higher
- PostgreSQL database (if using SeaORM)
# Build with default features (api)
cargo build
# Build with all features
cargo build --features api,svr# Run service (requires svr feature)
cargo run --features svrro: Response objects for API responses with unified formatcst: Constants used across the applicationctrl: Controllers handling HTTP requestssvc: Business logic servicessettings: Configuration managementweb_server: Web server implementation
This project is licensed under the MIT License - see the LICENSE file for details.