| Crates.io | alopex-server |
| lib.rs | alopex-server |
| version | 0.4.2 |
| created_at | 2025-12-17 09:37:34.825819+00 |
| updated_at | 2026-01-22 04:39:14.92398+00 |
| description | Server component for Alopex DB |
| homepage | |
| repository | https://github.com/alopex-db/alopex |
| max_upload_size | |
| id | 1989835 |
| size | 291,016 |
Alopex DB server providing HTTP and gRPC APIs for SQL execution, vector search, and session-aware transactions.
cargo run -p alopex-server
Default bindings:
127.0.0.1:8080127.0.0.1:8081127.0.0.1:9090curl -X POST http://127.0.0.1:8080/sql \
-H 'content-type: application/json' \
-d '{"sql":"CREATE TABLE items (id INT PRIMARY KEY, embedding VECTOR(2, L2));"}'
curl -X POST http://127.0.0.1:8080/sql \
-H 'content-type: application/json' \
-d '{"sql":"SELECT * FROM items;"}'
curl -X POST http://127.0.0.1:8080/vector/upsert \
-H 'content-type: application/json' \
-d '{"table":"items","id":1,"vector":[0.0,0.0]}'
curl -X POST http://127.0.0.1:8080/vector/search \
-H 'content-type: application/json' \
-d '{"table":"items","vector":[0.8,0.0],"k":2}'
The server loads configuration from alopex.toml (current directory) or an explicit path.
Environment variables use the ALOPEX__ prefix.
Example alopex.toml:
http_bind = "127.0.0.1:8080"
grpc_bind = "127.0.0.1:9090"
admin_bind = "127.0.0.1:8081"
api_prefix = ""
query_timeout = "30s"
max_request_size = 104857600
max_response_size = 104857600
max_connections = 1000
session_ttl = "300s"
metrics_enabled = true
tracing_enabled = true
audit_log_enabled = true
auth_mode = { type = "none" }
# auth_mode = { type = "dev", api_key = "secret" }
# tls = { cert_path = "./server.crt", key_path = "./server.key", ca_path = "./ca.crt", min_version = "tls13" }
# audit_log_output = { type = "file", path = "./audit.log" }
GET /healthz - health checkGET /status - runtime statusGET /metrics - Prometheus metricsFor a full configuration guide and API reference, see docs/server-guide.md.