Carcaro is a backend project written in Rust, designed to support a website for visualizing cars and swapping their colors. The frontend of the website is developed using React with TypeScript.
This backend system leverages various Rust libraries to handle tasks such as HTTP server management, database operations, image processing, and cloud storage interactions. Below are the key libraries used in this project:
- Tokio: Asynchronous runtime for Rust, facilitating concurrent execution of tasks.
- Warp: Web server framework for Rust, enabling the creation of RESTful APIs.
- Reqwest: HTTP client for Rust, used for making requests to external APIs.
- Serde: Rust library for serializing and deserializing data formats, essential for working with JSON.
- Serde JSON: Implementation of Serde's serialization and deserialization traits for JSON.
- SQLx: Async, pure Rust SQL crate with compile-time checked queries.
- Image: Library for image processing in Rust, useful for manipulating car images.
- Azure Storage Blobs: Rust SDK for Azure Blob Storage, facilitating interactions with cloud storage.
- Azure Core: Azure SDK core library for Rust.
- Futures: Core async utilities for Rust, used for handling asynchronous computations.
- Time: Library for dealing with time-related tasks in Rust.
- Natord: Natural order comparison library for Rust.
- Walkdir: Rust library for recursively walking a directory.
- Rayon: Data parallelism library for Rust, useful for concurrent processing.
- Palette: Library for colors and color spaces in Rust.
- Pwhash: Password hashing library for Rust.
To get started with Carcaro, follow these steps:
- Clone the repository to your local machine.
- Install Rust and Cargo if you haven't already.
- Add your azure access key under src/key.txt in the first
- Run 'cargo build' to build the project.
- Run 'cargo run' to start the backend server.
- Ensure the frontend React application is configured to communicate with this backend server.