Skip to content

Repository files navigation

Rust service

Microservice backend for FuelCommunication messenger. Rust workspace with 6 services and 4 shared infrastructure crates.

Architecture

architecture

Services

ServicePortProtocolStorageDescription
service-gateway8080HTTP-API gateway. Routes traffic, authenticates requests via gRPC call to auth, translates REST /access/* endpoints to gRPC, handles CORS and rate limiting
service-auth50051gRPCPostgreSQLAuthentication. Register, login, JWT access/refresh tokens, OAuth 2.0 (Google, GitHub), token cleanup
service-images3005HTTPS3 (RustFs), KafkaImage storage. Upload via multipart, download, delete. S3 for blobs, Kafka for event streaming
service-chats3002HTTP/WSScyllaDBReal-time messaging. WebSocket per chat room, message persistence in ScyllaDB, subscription verification via service-channels
service-channels3003HTTPPostgreSQL, Valkey, MeilisearchChannel management. CRUD, subscriptions, ownership transfer, full-text search, cache-aside caching
service-calls3004HTTP/WSIn-memoryVideo/audio calls. WebRTC signaling server (SDP/ICE relay), mesh P2P rooms up to 4 peers

Shared crates

CrateDescription
s3-clientS3-compatible object storage client (RustFs/AWS)
kafka-clientKafka producer/consumer wrapper
scylladb-clientScyllaDB session and message store
valkey-clientValkey (Redis-compatible) cache client

Docker build

All builds use multi-stage Dockerfiles with scratch base image for minimal container size.

# Build all services
docker build -t service-gateway:latest -f service-gateway/Dockerfile .
docker build -t service-auth:latest -f service-auth/Dockerfile .
docker build -t service-images:latest -f service-images/Dockerfile .
docker build -t service-chats:latest -f service-chats/Dockerfile .
docker build -t service-channels:latest -f service-channels/Dockerfile .
docker build -t service-calls:latest -f service-calls/Dockerfile .

Used by

Contributors

Languages