Gramática de URIs
La URI es la forma en que cada cliente de NamiDB — Python, Rust, CLI,
namidb-server — direcciona un namespace sobre un backend. La URI
lleva tanto el bucket/path como el namespace.
Esquemas
| Esquema | Backend |
|---|---|
memory://<ns> | En proceso, efímero — solo para tests |
file:///abs/dir?ns=<ns> | Filesystem local con CAS vía flock + atomic rename |
s3://<bucket>[/<prefix>]?ns=<ns> | AWS S3, Cloudflare R2, MinIO, Tigris, LocalStack |
gs://<bucket>[/<prefix>]?ns=<ns> | Google Cloud Storage |
az://<account>/<container>[/<prefix>]?ns=<ns> | Azure Blob Storage |
Flags de query-string
Comunes entre los backends compatibles con S3:
| Flag | Propósito |
|---|---|
?ns=<name> | Requerido. Nombra el namespace dentro del bucket/prefix. |
®ion=<aws-region> | Región. Para R2 usar auto. |
&endpoint=<https-url> | Sobrescribir el endpoint (R2, MinIO, LocalStack, Tigris, compatible con S3). |
&allow_http=true | Permitir endpoints http:// (LocalStack, MinIO local). |
Específicos de GCS:
| Flag | Propósito |
|---|---|
&service_account=<path> | Sobrescribir GOOGLE_APPLICATION_CREDENTIALS. |
Específicos de Azure:
| Flag | Propósito |
|---|---|
&use_emulator=true | Hablar con Azurite (el emulador local). |
Ejemplos
AWS S3
s3://my-bucket/data?ns=prod®ion=us-west-2Cloudflare R2
s3://my-bucket?ns=prod &endpoint=https://<ACCOUNT_ID>.r2.cloudflarestorage.com ®ion=autoGoogle Cloud Storage
gs://my-bucket/data?ns=prodgs://my-bucket?ns=prod&service_account=/etc/gcs-key.jsonAzure Blob
az://myacct/mycontainer?ns=prodaz://devstoreaccount1/mycontainer?ns=test&use_emulator=trueMinIO (local)
s3://namidb?ns=dev &endpoint=http://127.0.0.1:9000 ®ion=us-east-1 &allow_http=trueLocalStack (mock de S3 para tests)
s3://namidb-dev?ns=local &endpoint=http://localhost:4566 &allow_http=true ®ion=us-east-1Filesystem local
file:///var/lib/namidb?ns=prodfile://./data?ns=devMemoria efímera
memory://acme