2 unstable releases
Uses new Rust 2024
| new 0.3.0 | Dec 7, 2025 |
|---|---|
| 0.2.0 | Oct 25, 2025 |
#1918 in Network programming
24KB
290 lines
weather-rust
A simple, containerized Rust web server for fetching weather information, designed for deployment on Google Cloud Run.
Overview
This project provides a basic "Hello, World!" style web application written in Rust. It serves as a template and example for building and deploying a minimal, secure, and efficient Rust application on Google Cloud Run using Docker and Google Cloud Build.
Technologies Used
- Language: Rust
- Web Framework: Hyper
- Containerization: Docker
- Deployment: Google Cloud Run
- CI/CD: Google Cloud Build
Getting Started
A Makefile is included to simplify common development tasks.
Prerequisites
Before you begin, ensure you have the following installed:
Initial Setup
Clone the repository and install the necessary dependencies:
cargo build
Development Workflow
The following commands are available through the Makefile.
Building the Project
- Development Build:
make build - Release Build (optimized for production):
make release
Running Locally
To start the server on http://localhost:8080:
make run
Code Quality
- Format the code:
make format - Lint the code with Clippy:
make clippy
Testing
Run the test suite:
make test
Deployment
Deployment is automated via Google Cloud Build, as defined in cloudbuild.yaml. The process uses a multi-stage Dockerfile to build a minimal, secure production image based on gcr.io/distroless/cc-debian12.
To manually trigger a deployment, run:
make deploy
This command will:
- Submit a build to Google Cloud Build.
- Build and push the Docker image to Google Container Registry (GCR).
- Deploy the new image to the
cloudrun-rustservice in theus-central1region.
Dependencies
~15–30MB
~414K SLoC