Files
cortiq-gateway/Cargo.toml
T
infosave2007 9ec8861464 release: v0.2.37 — zero-argument startup, first-run wizard, real download progress
Startup no longer needs arguments: the config is created on first launch, a busy
port is swapped for a free one, the console is open by default, and the browser
lands on a setup wizard that downloads a ready-made .cmf model and wires it into
routing (managed server + routing.default) when you press Finish.

Download progress was reported from curl's own meter, which prints a full
0→100% bar for the -L redirect hop before the transfer starts — so every job
showed 100% and then hung. Progress now comes from bytes on disk against the
size from the HuggingFace tree (or a HEAD request).

The UI and the gateway also disagreed about the output file name, so a finished
download never marked its card as downloaded; the gateway now returns the exact
stem and the UI sends it back verbatim for download, progress and delete.

Featured models are read live from the infosave HF account in both the wizard
and Import, and all 432 UI strings now exist in every one of the 7 languages.
2026-08-06 17:56:42 +03:00

77 lines
2.1 KiB
TOML

[package]
name = "cortiq-gateway"
version = "0.2.37"
edition = "2021"
rust-version = "1.75"
license = "Apache-2.0"
description = "Universal LLM gateway with intelligent routing and an embedded multilingual admin console"
repository = "https://github.com/infosave2007/cortiq-gateway"
homepage = "https://api.allaigate.com"
readme = "README.md"
keywords = ["llm", "gateway", "proxy", "openai", "routing"]
categories = ["web-programming::http-server", "command-line-utilities"]
# Files shipped in the published crate. The embedded admin SPA MUST be included
# because rust-embed compiles it in; docs/screenshots are excluded to keep the
# crate lean. The web/ subfolders are listed one by one rather than as web/**/*
# so stray scratch files dropped next to the SPA never end up published.
include = [
"src/**/*",
"web/index.html",
"web/favicon.svg",
"web/css/**/*",
"web/js/**/*",
"config/gateway.example.toml",
"README.md",
"CHANGELOG.md",
"LICENSE",
]
[dependencies]
# async runtime + HTTP server
tokio = { version = "1", features = ["full"] }
axum = { version = "0.7", features = ["macros"] }
tower = "0.5"
tower-http = { version = "0.6", features = ["limit", "trace", "cors"] }
# HTTP client to providers and to cortiq-router (rustls, no OpenSSL)
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"] }
# serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
# hot-reloadable shared state + embedded admin SPA
arc-swap = "1"
rust-embed = "8"
mime_guess = "2"
# cross-platform CSPRNG for admin/key token generation (Linux/macOS/Windows)
getrandom = "0.2"
# streaming / async utils
futures = "0.3"
async-trait = "0.1"
async-stream = "0.3"
bytes = "1"
tokio-stream = "0.1"
# CLI / config
clap = { version = "4", features = ["derive"] }
# open browser on first run (optional)
open = { version = "5", optional = true }
# errors / logging / metrics
thiserror = "1"
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
[features]
default = ["open-browser"]
open-browser = ["open"]
[profile.release]
lto = true
codegen-units = 1