Skip to main content

Module database

Module database 

Source
Available on crate feature database only.
Expand description

Database connection string builders.

Builds connection URLs from environment variables with standard prefixes. Each builder reads {PREFIX}_HOST, {PREFIX}_PORT, {PREFIX}_USER, {PREFIX}_PASSWORD, {PREFIX}_DB and constructs the appropriate URL.

Password fields use crate::SensitiveString for compile-time safe redaction.

§Supported Databases

DatabaseDefault PortURL Format
PostgreSQL5432postgresql://user:pass@host:port/db
ClickHouse8123http://user:pass@host:port/db (HTTP)
ClickHouse Native9000tcp://user:pass@host:port/db
Redis/Valkey6379redis://user:pass@host:port/db
MongoDB27017mongodb://user:pass@host:port/db

§Usage

use hyperi_rustlib::database::{PostgresUrl, DatabaseUrl};

// From explicit values
let url = PostgresUrl::new("db.prod.internal", 5432, "app_user", "secret", "dfe_db");
assert!(url.to_url().starts_with("postgresql://"));

// From env vars (reads POSTGRES_HOST, POSTGRES_PORT, etc.)
let url = PostgresUrl::from_env("POSTGRES");

§Config Cascade

database:
  postgres:
    host: db.prod.internal
    port: 5432
    user: app_user
    password: secret
    db: dfe_db

Structs§

ClickHouseUrl
ClickHouse HTTP connection URL builder (port 8123).
DbConnection
Common database connection fields.
MongoUrl
MongoDB connection URL builder.
PostgresUrl
PostgreSQL connection URL builder.
RedisUrl
Redis/Valkey connection URL builder.

Traits§

DatabaseUrl
Trait for database connection URL builders.