https://github.com/evops-sum25/evops-backend
A REST + gRPC server for EvOps’s inner logic 🦀
https://github.com/evops-sum25/evops-backend
api axum backend diesel docker evops grpc minio postgresql rest-api rust tonic
Last synced: about 1 month ago
JSON representation
A REST + gRPC server for EvOps’s inner logic 🦀
- Host: GitHub
- URL: https://github.com/evops-sum25/evops-backend
- Owner: evops-sum25
- License: other
- Created: 2025-06-03T09:50:29.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-09-03T11:39:46.000Z (9 months ago)
- Last Synced: 2025-09-03T12:35:03.395Z (9 months ago)
- Topics: api, axum, backend, diesel, docker, evops, grpc, minio, postgresql, rest-api, rust, tonic
- Language: Rust
- Homepage:
- Size: 403 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EvOps / Back End
Main repository: https://github.com/evops-sum25/evops
## Features
- API methods to create and view users, events, event images, and event tags
(groups).
- Combined REST+gRPC web-server so that clients can choose their preferred
communication way.
- Auto-generated OpenAPI documentation + Swagger webpage.
- Persistent data storage with PostgreSQL.
- Persistent image storage with MinIO.
- Data validation at the type-system level.
- Basic logging of incoming requests and their responses.
- Configurability with environment variables and a [`.env`](/.env.example) file.
- An [API extension](https://github.com/evops-sum25/evops-client-ext) for
clients to ease the interaction with our back end:
- Validation functions (such as `validate_event_title` or
`validate_tag_alias`) that reuse the logic from the back-end core.
- Fully-typed Markdown parser with our own parse settings.
- Exporting to WASM with Extism and Protobuf types.
- Generating type-safe FFI bindings with UniFFI.
## Screenshots

## Build Instructions
1. Create a [`.env`](`/.env.example`).
```shell
cp .env.example .env
```
2. Run the server.
- Development mode:
```shell
bacon
```
- Release mode:
```shell
cargo run --release
```
3. Both the REST and gRPC servers should be available on http://0.0.0.0:8080 by
default.