3 unstable releases
Uses new Rust 2024
| 0.2.1 | Nov 3, 2025 |
|---|---|
| 0.2.0 | Nov 3, 2025 |
| 0.1.0 | Nov 3, 2025 |
#431 in Authentication
4KB
Geddle Rust
Geddle is the AI & SaaS affiliate marketplace for creators.
Tech Stack
- Backend: Rust + Axum
- Database: PostgreSQL + clorinde
- Payment Processing: Stripe
- Authentication: JWT
- Web Framework: Pure Axum routing
- Async Runtime: Tokio
- Connection Pooling: Deadpool
Getting Started
Prerequisites
- Rust (2024 edition)
- PostgreSQL
- Stripe Account
Setup
- Clone the repository
git clone https://github.com/geddle/geddle-rust.git
cd geddle-rust
- Create a
.envfile in the root directory with the following variables:
DATABASE_URL=postgres://username:password@localhost/geddle
DATA_DATABASE_URL=postgres://username:password@localhost/geddle_data
STRIPE_SECRET_KEY=sk_test_...
- Run database migrations
sqlx database create
sqlx migrate run
- Build the project
cargo build
- Run the services
# Terminal 1: Run the API server
cargo run --bin geddle
# or use alias:
cargo dev # development mode
The API will be available at http://127.0.0.1:5001.
Development
Database Schema
The database schema is defined in the migrations directory. To add new migrations:
$ sqlx migrate add migration_name
$ sqlx migrate run
$ sqlx migrate revert # to revert the last migration (run carefully!)
Code Generation
The database query code is generated using clorinde. After modifying SQL files in the queries directory, regenerate the code with:
$ cargo clean -p geddle-common # clean cache if necessary
$ cargo build -p geddle-common # build the common crate to generate geddle-db
Deployment
GitHub Actions Deployment
Deployment is handled via GitHub Actions:
- Go to the Actions tab in GitHub
- Select "Deploy" workflow
- Click "Run workflow"
- The workflow will build and deploy all services automatically
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request