Dependencies
Key dependencies for ocg-server and ocg-redirector from Cargo.toml.
Web framework
| Crate | Version | Purpose |
|---|---|---|
axum |
0.8 | HTTP router and handler framework |
axum-login |
0.17 | Session-based authentication layer |
axum-messages |
0.7 | Flash messages middleware |
tower |
0.5 | Middleware abstractions |
tower-http |
0.6 | HTTP-specific middleware (trace, set-header) |
tower-sessions |
0.14 | Session management |
tokio |
1.52 | Async runtime (macros, process, rt-multi-thread, signal, sync, time) |
Database
| Crate | Version | Purpose |
|---|---|---|
deadpool-postgres |
0.14 | Async PostgreSQL connection pool |
postgres-openssl |
0.5 | TLS support for PostgreSQL connections |
openssl |
0.10 | OpenSSL bindings for TLS |
tokio-postgres |
0.7 | Async PostgreSQL driver |
Serialization
| Crate | Version | Purpose |
|---|---|---|
serde |
1.0 | Serialization/deserialization framework |
serde_json |
1.0 | JSON support |
serde_qs |
1.1 | Query string deserialization (with axum feature) |
serde_urlencoded |
0.7 | URL-encoded form data |
serde_with |
3.21 | Extra serde helpers (skip_serializing_none, etc.) |
Templating
| Crate | Version | Purpose |
|---|---|---|
minijinja |
2.10 | Jinja2-style HTML template engine |
minijinja-contrib |
2.10 | Extra MiniJinja filters |
rust-embed |
8.11 | Embed static assets into the binary at compile time |
Auth and crypto
| Crate | Version | Purpose |
|---|---|---|
oauth2 |
4.4 | OAuth 2.0 client |
openidconnect |
3.5 | OIDC client (used for Google login) |
password-auth |
1.0 | Argon2id password hashing and verification |
sha2 |
0.11 | SHA-256 for token hashing |
subtle |
2.6 | Constant-time comparison |
Validation
| Crate | Version | Purpose |
|---|---|---|
garde |
0.22 | Declarative input validation via #[derive(Validate)] |
Configuration
| Crate | Version | Purpose |
|---|---|---|
figment |
0.10 | Configuration layering from YAML and environment |
clap |
4.5 | CLI argument parsing |
Payments
| Crate | Version | Purpose |
|---|---|---|
async-stripe |
0.40 | Stripe API client |
Images
| Crate | Version | Purpose |
|---|---|---|
aws-sdk-s3 |
1.81 | S3 image storage |
image |
0.25 | Image decoding and processing |
Utilities
| Crate | Version | Purpose |
|---|---|---|
anyhow |
1.0 | Error handling |
thiserror |
2.0 | Derive macros for typed errors |
tracing |
0.1 | Structured logging and spans |
tracing-subscriber |
0.3 | Log output formatting |
uuid |
1.11 | UUID generation and parsing |
chrono |
0.4 | Date/time types |
chrono-tz |
0.10 | Timezone support |
time |
0.3 | Time types (used by tower-sessions) |
reqwest |
0.12 | HTTP client for external API calls |
async-trait |
0.1 | Trait objects with async methods |
strum |
0.28 | Enum/string conversion macros |
rkyv |
0.7 | Zero-copy deserialization (cache layer) |
Node.js (MCP server)
The MCP server in mcp/ uses only Node.js built-in modules (http, url, fs). No npm dependencies beyond what ships with Node.js itself. See mcp/package.json.