feat: Implement a new layered architecture for the QR generator, integrating Axum, Maud, and HTMX, and updating documentation.

This commit is contained in:
2025-12-30 03:28:03 +01:00
parent 286e10160f
commit 9f12d44489
25 changed files with 2713 additions and 536 deletions

View File

@@ -1,17 +1,80 @@
# QR Code generator
# K-QR - Rust QR Code Generator
Simple qr code generator written in Rust
A lightweight, high-performance QR code generator built with Rust, Axum, Maud, and HTMX.
# Build
## Features
```bash
cargo build --release
```
- **Blazing Fast**: Built with Rust for maximum performance.
- **Embedded UI**: The web interface is completely embedded in the binary.
- **Interactive**: Uses HTMX for seamless, single-page-like experience without complex JS frameworks.
- **Configurable**: Easily customize host, port, and default styles via environment variables.
## Tech Stack
- **Backend**: Rust / Axum
- **Templating**: Maud (Type-safe HTML)
- **Frontend Interactivity**: HTMX
- **QR Generation**: `qrcode` crate
## Configuration
The application can be configured using environment variables:
| Variable | Description | Default |
|----------|-------------|---------|
| `SERVER_HOST` | Network interface to bind to | `0.0.0.0` |
| `SERVER_PORT` | Port to listen on | `3000` |
| `QR_DEFAULT_COLOR` | Default color for generated QR codes (HEX) | `#000000` |
| `RUST_LOG` | Logging level (`debug`, `info`, `warn`, `error`) | `qr_generator=debug` |
## Getting Started
### Prerequisites
- [Rust](https://rustup.rs/) (latest stable)
- [Docker](https://www.docker.com/) (optional, for containerized deployment)
### Local Development
1. Clone the repository:
```bash
git clone <repository-url>
cd qr-generator
```
2. Run the backend:
```bash
cd backend
cargo run
```
3. Open your browser at `http://localhost:3000`.
### Docker Deployment
Use Docker Compose to spin up the application:
```bash
docker-compose up --build -d
```
# License
Or pull the pre-built image:
MIT
```bash
docker run -d -p 3000:3000 --name k-qr registry.gabrielkaszewski.dev/k-qr:latest
```
## API Usage
You can also generate QR codes directly via the API:
```bash
GET /api/qr?data=https://github.com
```
**Parameters:**
- `data` (required): The URL or text to encode in the QR code.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.