[package]
edition = "2021"
name = "apicentric"
version = "0.7.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "apicentric"
description = "Toolkit for building, recording, and sharing mock APIs"
readme = "README.md"
license = "MIT"
repository = "https://github.com/pmaojo/apicentric"
[package.metadata.wasm-pack.profile.release]
wasm-opt = false
[features]
cli-tools = [
"simulator",
"contract-testing",
"tui",
]
contract-testing = [
"reqwest",
"dep:async-trait",
]
database = ["rusqlite"]
default = [
"tui",
"webui",
"simulator",
"contract-testing",
"mock-data",
"database",
"file-watch",
"websockets",
"scripting",
"graphql",
"iot",
]
file-watch = ["notify"]
full = [
"gui",
"webui",
"simulator",
"contract-testing",
"tui",
"mock-data",
"database",
"file-watch",
"websockets",
"scripting",
"graphql",
"iot",
"mcp",
]
graphql = [
"dep:async-graphql",
"dep:async-graphql-parser",
]
gui = [
"dep:eframe",
"dep:egui",
"mock-data",
]
iot = [
"dep:rumqttc",
"dep:tokio-modbus",
"dep:rhai",
"dep:csv",
]
mcp = [
"dep:rmcp",
"simulator",
]
minimal = ["simulator"]
mock-data = [
"dep:fake",
"dep:rand",
]
scripting = ["dep:rhai"]
simulator = [
"database",
"dep:async-trait",
"dep:rand",
"reqwest",
"dep:fake",
]
tui = [
"ratatui",
"crossterm",
"indicatif",
"console",
"inquire",
"reqwest",
]
websockets = [
"tokio-tungstenite",
"futures-util/sink",
]
webui = ["websockets"]
[lib]
name = "apicentric"
crate-type = ["rlib"]
path = "src/lib.rs"
[[bin]]
name = "apicentric"
path = "src/bin/apicentric.rs"
[[bin]]
name = "apicentric-minimal"
path = "src/bin/apicentric-minimal.rs"
[[example]]
name = "cloud_server"
path = "examples/cloud_server.rs"
[[example]]
name = "embedded_api_server"
path = "examples/embedded_api_server.rs"
[[example]]
name = "programmatic_demo"
path = "examples/programmatic_demo.rs"
[[example]]
name = "start_server"
path = "examples/start_server.rs"
[[test]]
name = "admin_api"
path = "tests/admin_api.rs"
[[test]]
name = "auth_api"
path = "tests/auth_api.rs"
[[test]]
name = "cli_output"
path = "tests/cli_output.rs"
[[test]]
name = "cloud_command_test"
path = "tests/cloud_command_test.rs"
[[test]]
name = "codegen_api"
path = "tests/codegen_api.rs"
[[test]]
name = "config_api"
path = "tests/config_api.rs"
[[test]]
name = "contract_use_cases"
path = "tests/contract_use_cases.rs"
[[test]]
name = "dockerize"
path = "tests/dockerize.rs"
[[test]]
name = "fault_injection"
path = "tests/fault_injection.rs"
[[test]]
name = "feature_flags"
path = "tests/feature_flags.rs"
[[test]]
name = "fs_utils"
path = "tests/fs_utils.rs"
[[test]]
name = "gui_tests"
path = "tests/gui_tests.rs"
[[test]]
name = "helpers_faker"
path = "tests/helpers_faker.rs"
[[test]]
name = "helpers_math"
path = "tests/helpers_math.rs"
[[test]]
name = "helpers_text"
path = "tests/helpers_text.rs"
[[test]]
name = "import_export"
path = "tests/import_export.rs"
[[test]]
name = "mcp"
path = "tests/mcp.rs"
[[test]]
name = "openapi_conversion"
path = "tests/openapi_conversion.rs"
[[test]]
name = "plugin_loading"
path = "tests/plugin_loading.rs"
[[test]]
name = "plugin_system"
path = "tests/plugin_system.rs"
[[test]]
name = "react_query_generation"
path = "tests/react_query_generation.rs"
[[test]]
name = "react_view_generation"
path = "tests/react_view_generation.rs"
[[test]]
name = "recording_api"
path = "tests/recording_api.rs"
[[test]]
name = "recording_proxy_test"
path = "tests/recording_proxy_test.rs"
[[test]]
name = "report_sink"
path = "tests/report_sink.rs"
[[test]]
name = "security"
path = "tests/security.rs"
[[test]]
name = "security_admin_auth"
path = "tests/security_admin_auth.rs"
[[test]]
name = "security_config"
path = "tests/security_config.rs"
[[test]]
name = "security_iot_traversal"
path = "tests/security_iot_traversal.rs"
[[test]]
name = "security_iot_upload"
path = "tests/security_iot_upload.rs"
[[test]]
name = "security_iot_upload_limit"
path = "tests/security_iot_upload_limit.rs"
[[test]]
name = "security_ssrf"
path = "tests/security_ssrf.rs"
[[test]]
name = "service_instance"
path = "tests/service_instance.rs"
[[test]]
name = "service_spec_loader"
path = "tests/service_spec_loader.rs"
[[test]]
name = "simulator_integration"
path = "tests/simulator_integration.rs"
[[test]]
name = "tui_state"
path = "tests/tui_state.rs"
[[test]]
name = "websocket_api"
path = "tests/websocket_api.rs"
[dependencies.indexmap]
version = "2.12.0"
[dev-dependencies.assert_cmd]
version = "2.0"
[dev-dependencies.predicates]
version = "3.0"
[dev-dependencies.reqwest]
version = "0.11"
features = [
"blocking",
"json",
"multipart",
]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.argon2]
version = "0.5"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-graphql]
version = "7.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-graphql-parser]
version = "7.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-trait]
version = "0.1.74"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.axum]
version = "0.7"
features = [
"macros",
"tokio",
"http1",
"http2",
"json",
"matched-path",
"original-uri",
"query",
"ws",
"multipart",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.bytes]
version = "1.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.chrono]
version = "0.4.31"
features = ["serde"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.colored]
version = "2.1.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.console]
version = "0.15.7"
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.crossterm]
version = "0.27"
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.csv]
version = "1.3"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.dotenvy]
version = "0.15"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.eframe]
version = "0.33.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.egui]
version = "0.33.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.env_logger]
version = "0.10"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.fake]
version = "4.4.0"
features = ["derive"]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.futures-util]
version = "0.3"
features = ["std"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.glob]
version = "0.3.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.handlebars]
version = "6.2.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.http]
version = "1.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.http-body-util]
version = "0.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hyper]
version = "1.0"
features = [
"http1",
"http2",
"server",
"client",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hyper-rustls]
version = "0.27"
features = [
"native-tokio",
"http1",
"http2",
"tls12",
"ring",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hyper-util]
version = "0.1"
features = [
"server",
"client",
"client-legacy",
"http1",
"http2",
"tokio",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.indicatif]
version = "0.17.7"
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.inquire]
version = "0.6"
features = ["crossterm"]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.jsonwebtoken]
version = "9.2"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libloading]
version = "0.8"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.log]
version = "0.4.20"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.notify]
version = "8.2.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.openapiv3]
version = "2.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rand]
version = "0.8"
features = [
"std",
"std_rng",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.ratatui]
version = "0.26.0"
features = ["crossterm"]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.regex]
version = "1.11.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.reqwest]
version = "0.11"
features = [
"json",
"rustls-tls",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rhai]
version = "1.17"
features = [
"sync",
"serde",
]
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rmcp]
version = "0.8.5"
features = ["server"]
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rumqttc]
version = "0.24"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rusqlite]
version = "0.31"
features = ["bundled"]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rustls]
version = "0.23.19"
features = [
"std",
"tls12",
"ring",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.serde]
version = "1.0.219"
features = ["derive"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.serde_json]
version = "1.0.143"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.serde_yaml]
version = "0.9.34"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tempfile]
version = "3.8.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.thiserror]
version = "1.0.69"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1.47.1"
features = [
"rt-multi-thread",
"fs",
"process",
"net",
"sync",
"time",
"macros",
"io-util",
"signal",
"io-std",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio-modbus]
version = "0.14"
features = [
"tcp",
"server",
"tcp-server",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio-stream]
version = "0.1"
features = ["sync"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio-tungstenite]
version = "0.21"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tower]
version = "0.4"
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tower-http]
version = "0.5"
features = [
"cors",
"fs",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing]
version = "0.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"json",
]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.url]
version = "2.5.4"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.uuid]
version = "1.11.0"
features = ["v4"]
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true