Skip to content

Build scalable microservices in Rust with #monorepo efficiency. Simplify development, enhance modularity, and streamline dependency management. Leverage Rust's #performance and #safety for resilient distributed systems. Ideal for new projects or service migrations.

Notifications You must be signed in to change notification settings

jayden-dang/rust-microservices-monorepo

Repository files navigation

Rust Monorepo Microservices

Welcome to Rust Monorepo Microservices, a framework designed to streamline the development of scalable microservice architectures in Rust using a monorepository approach.

Overview

This project aims to provide developers with a cohesive toolkit for managing multiple microservices within a single repository. By adopting a monorepo strategy, it simplifies code sharing, improves modularity, and enhances overall project maintainability. Rust’s performance and safety features are leveraged to ensure robustness and efficiency in distributed systems.

Features

  • Monorepo Efficiency: Manage multiple microservices in a unified repository.
  • Simplified Development: Streamline workflows with centralized code management.
  • Enhanced Modularity: Promote code reuse and maintainability across services.
  • Dependency Management: Simplify handling dependencies between microservices.
  • Scalability: Utilize Rust’s performance advantages for scalable architectures.
  • Safety: Benefit from Rust’s strong type system and memory safety guarantees.

Get Started

Prerequisites

  • Rust: Version 1.79.0
  • PostgreSQL

Techstack

  • Axum - Http Method
  • Tokio - Concurrency
  • sqlx | seaORM | Diesel: Query
    • Sqlx: Raw Query -> Performance Cao;
    • ORM:
      • SeaORM: Dễ -> Syntax -> Newbie
      • Diesel: Sqlx <> seaOrm. -> Trung bình khó -> Syntax Macros -> Intermediate
  • bb8-redis - Redis
  • Opentelemetry - Tracing
  • gRPC - tonic/protobuf
  • AWS - EC2 / S3
  • Github Actions
  • RabbitMq

Installation

  • Cargo Make:

    cargo install cargo-make

  • Cargo Nextest:

    cargo install cargo-nextest

  • Cargo Watch

    cargo install cargo-watch

  • Build

cargo make build

  • Run

cargo make run

Usage

  • Customize configurations and functionalities of individual microservices as per your project requirements.
  • Integrate new microservices or migrate existing ones seamlessly within the monorepo structure.

Contributing

  • Contributions are welcome! Please fork the repository and submit pull requests to contribute new features, improvements, or bug fixes.

License

  • This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Inspired by the need for scalable, maintainable microservice architectures in Rust.
  • Built with love by the Rust community.

About

Build scalable microservices in Rust with #monorepo efficiency. Simplify development, enhance modularity, and streamline dependency management. Leverage Rust's #performance and #safety for resilient distributed systems. Ideal for new projects or service migrations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages