Engine for Weights, AI Compute & Serving

EWACS

Run open models on your own terms.

A self-hosted model server that speaks the Ollama and OpenAI APIs unchanged — with a commercial-use-aware marketplace built in, so the models you ship are licensed to ship.

Engine
Weights
AI
Compute
Serving
DROP-IN COMPATIBLE
POST /api/generate POST /api/chat POST /api/pull POST /v1/chat/completions POST /v1/embeddings GET /v1/models
Why EWACS

One daemon. Two APIs. Your infrastructure.

Point any Ollama or OpenAI client at EWACS and it just works — then add the things Ollama doesn't give you.

Ollama-compatible

The full /api/* surface — generate, chat, embeddings, tags, show, pull, create — with byte-for-byte streaming.

v1

OpenAI surface

/v1/chat/completions with SSE, plus completions, embeddings, and models. Your OpenAI SDK doesn't know the difference.

©

Licensed to ship

A curated marketplace of open models whose licenses permit commercial use — gated, so you never serve what you can't.

Pluggable inference

Engines sit behind a trait. Swap or add a backend without touching the API or model-management layers.

Self-hosted

Your weights, your hardware, your network. Runs as a service on Windows and Linux; macOS best-effort.

Marketplace + fallback

Pull from your marketplace first; on a miss it ports a permitted model in from upstream, then serves it.

Quickstart

Up and serving in a minute.

Rust stable is the only prerequisite for the default build — no C/C++ toolchain required.

bash — ewacs
# build the daemon (binary is `ewacs`)
cargo build --release

# run it (dev marketplace + placeholder backend)
EWACS_MOCK_MARKETPLACE=1 ./target/release/ewacs

# in another terminal — pull a model and generate
curl -X POST localhost:11434/api/pull -d '{"name":"demo"}'
curl -X POST localhost:11434/api/generate \
  -d '{"model":"demo","prompt":"hello world","stream":false}'

# OpenAI clients work against the same port, unchanged
curl -X POST localhost:11434/v1/chat/completions \
  -d '{"model":"demo","messages":[{"role":"user","content":"hi"}]}'
The marketplace

Pull models you're allowed to use.

EWACS pulls from a curated marketplace of open-source models whose licenses permit commercial use. When a model isn't in the catalog yet, the marketplace checks upstream, evaluates the license, and — if it passes the gate — ports it in and serves it. The license travels with the model, and a non-commercial license is a hard stop, not a footnote.

1. pull "model:tag"
2. marketplace → ready / port from upstream
3. license gate → commercial use?
4. verify digests → serve
✗ non-commercial → 451, never served