1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
[]
= "inferd-engine"
= "Backend trait and adapters for inferd. v0.1: mock + libllama (FFI). v0.2: cloud adapters."
= true
= true
= true
= true
= true
= true
= true
= "build.rs"
[]
# Default ships the mock backend only. The llama.cpp FFI backend is
# opt-in until M2a vendors the submodule and the build.rs lands; once
# stable, this becomes default for the daemon binary but stays
# feature-gated for crate consumers who only want the trait.
= []
= []
# Tier 3 integration tests in tests/llamacpp.rs only compile when this
# feature is on. Set INFERD_TEST_MODEL_PATH to a GGUF file to actually run
# them; otherwise they skip with an explanatory message.
= ["llamacpp"]
= ["llamacpp"]
= ["llamacpp"]
= ["llamacpp"]
= ["llamacpp"]
# OpenAI-compat outbound HTTP backend (Phase 5A). Pulls in reqwest +
# eventsource_stream. The daemon never *serves* HTTP — this is the
# narrow outbound carve-out wrapped behind the Backend trait
# (ADR 0006 §"cloud backends").
= ["dep:reqwest", "dep:eventsource-stream", "dep:futures-util"]
# AWS Bedrock-runtime InvokeModelWithResponseStream backend (Phase
# 6B-5). Anthropic-on-Bedrock body shape only in v0.2.0; SigV4 +
# AWS_BEARER_TOKEN_BEDROCK auth; AWS event-stream framing parser.
# Same lean-core posture as `openai`: outbound HTTPS only, no extra
# inbound surface in the daemon.
= ["dep:reqwest", "dep:futures-util", "dep:hmac", "dep:hex", "dep:url"]
[]
= { = "../inferd-proto", = "=0.2.1" }
= { = true }
= { = true }
= "0.1"
= "0.3"
= { = true }
= { = true }
= { = true }
= { = true }
= { = true } # Constant-time hash compare (THREAT_MODEL F-5).
= { = true }
# v2 multimodal: base64-decode the wire-shape RGB / PCM bytes before
# handing them to libmtmd. Pulled in unconditionally; tiny crate
# (no_std-compatible, ~10 KB binary growth).
= "0.22"
# Used by the chat_template module to render tool-use input objects
# and tool-result content into Gemma 4's wire format. Already pulled
# in transitively via `inferd-proto`'s v2 ToolUseInput type alias.
= { = true }
# --- Optional: OpenAI-compat HTTP backend (Phase 5A). Pulled in only
# when the `openai` feature is on. rustls-only to avoid OpenSSL on
# Windows.
= { = "0.12", = false, = ["rustls-tls", "json", "stream"], = true }
= { = "0.2", = true }
= { = "0.3", = true }
# --- Optional: Bedrock-invoke backend (Phase 6B-5). SigV4 needs HMAC-
# SHA-256 (hmac+sha2 — sha2 is already a workspace dep) and lowercase
# hex for the canonical request hash. `url` parses the configured
# endpoint into host/path/query for the canonical request shape.
= { = "0.12", = true }
= { = "0.4", = true }
= { = "2", = true }
[]
# Only invoked when the `llamacpp` feature is enabled; the build.rs
# checks env::var("CARGO_FEATURE_LLAMACPP") and short-circuits otherwise.
= "0.1"
= "0.71"
[]
= { = true, = ["macros", "rt-multi-thread"] }
= "3"
# Tier 3 multimodal smoke tests act as a consumer: decode JPEG/PNG
# inputs to raw RGB before sending through the v2 wire shape (per
# ADR 0016, decoding lives consumer-side; the daemon never links a
# codec). image is dev-only.
= { = "0.25", = false, = ["jpeg", "png"] }
= "0.22"
# Mock HTTP server for the openai-compat adapter unit tests.
= "0.6"