llmposter 0.4.8

Drop-in mock server for OpenAI, Anthropic & Gemini APIs — library or standalone CLI. SSE streaming, tool calling, OAuth2, failure injection, streaming chaos, stateful scenarios, request capture, hot-reload, response templating. Test LLM apps without burning tokens.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.89"
name = "llmposter"
version = "0.4.8"
build = false
exclude = [
    ".github/",
    ".gitignore",
    ".pre-commit-config.yaml",
    "dev/",
    "docs/superpowers/",
    ".SKILL.md.*",
    "GEMINI.md",
    "AUDIT-PROMPT*.md",
    "RESUME-ME.sh",
    "about.toml",
    "skilldo.toml",
    "cliff.toml",
    "codecov.yml",
    "tarpaulin-report.json",
    "build_rs_cov.profraw",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Drop-in mock server for OpenAI, Anthropic & Gemini APIs — library or standalone CLI. SSE streaming, tool calling, OAuth2, failure injection, streaming chaos, stateful scenarios, request capture, hot-reload, response templating. Test LLM apps without burning tokens."
homepage = "https://skilldoai.com"
readme = "README.md"
keywords = [
    "llm",
    "mock",
    "openai",
    "anthropic",
    "gemini",
]
categories = [
    "development-tools::testing",
    "web-programming::http-server",
]
license = "AGPL-3.0-or-later"
repository = "https://github.com/SkillDoAI/llmposter"

[package.metadata.binstall]
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "tgz"

[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-linux-amd64.tar.gz"

[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-linux-arm64.tar.gz"

[package.metadata.binstall.overrides.aarch64-apple-darwin]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-v{ version }-darwin-arm64.tar.gz"

[features]
default = [
    "oauth",
    "watch",
    "jsonpath",
]
jsonpath = ["dep:jsonpath-rust"]
oauth = [
    "dep:oauth-mock",
    "dep:reqwest",
]
templating = ["dep:minijinja"]
ui = []
watch = ["dep:notify-debouncer-mini"]

[lib]
name = "llmposter"
path = "src/lib.rs"

[[bin]]
name = "llmposter"
path = "src/main.rs"

[[test]]
name = "anthropic_test"
path = "tests/anthropic_test.rs"

[[test]]
name = "auth_test"
path = "tests/auth_test.rs"

[[test]]
name = "chaos_test"
path = "tests/chaos_test.rs"

[[test]]
name = "cli_test"
path = "tests/cli_test.rs"

[[test]]
name = "completions_test"
path = "tests/completions_test.rs"

[[test]]
name = "diagnostics_test"
path = "tests/diagnostics_test.rs"

[[test]]
name = "embeddings_test"
path = "tests/embeddings_test.rs"

[[test]]
name = "gemini_test"
path = "tests/gemini_test.rs"

[[test]]
name = "hot_reload_test"
path = "tests/hot_reload_test.rs"

[[test]]
name = "match_fields_test"
path = "tests/match_fields_test.rs"

[[test]]
name = "openai_test"
path = "tests/openai_test.rs"

[[test]]
name = "refusal_test"
path = "tests/refusal_test.rs"

[[test]]
name = "request_capture_test"
path = "tests/request_capture_test.rs"

[[test]]
name = "responses_test"
path = "tests/responses_test.rs"

[[test]]
name = "scenario_test"
path = "tests/scenario_test.rs"

[[test]]
name = "spec_test"
path = "tests/spec_test.rs"

[[test]]
name = "templating_test"
path = "tests/templating_test.rs"

[dependencies.axum]
version = "0.8"

[dependencies.clap]
version = "4"
features = ["derive"]

[dependencies.jsonpath-rust]
version = "1"
optional = true

[dependencies.minijinja]
version = "2"
features = [
    "builtins",
    "serde",
]
optional = true
default-features = false

[dependencies.notify-debouncer-mini]
version = "0.7"
optional = true
default-features = false

[dependencies.oauth-mock]
version = "0.4"
optional = true

[dependencies.regex]
version = "1"

[dependencies.reqwest]
version = "0.13"
features = [
    "json",
    "form",
]
optional = true
default-features = false

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"

[dependencies.serde_yaml_ng]
version = "0.10"

[dependencies.tokio]
version = "1"
features = ["full"]

[dependencies.tokio-stream]
version = "0.1"
features = ["sync"]

[dev-dependencies.oauth-mock]
version = "0.4"

[dev-dependencies.reqwest]
version = "0.13"
features = [
    "json",
    "stream",
]

[dev-dependencies.tokio-test]
version = "0.4"

[target."cfg(unix)".dev-dependencies.libc]
version = "0.2"