|
1 | | -[package] |
2 | | -name = "shimmy" |
3 | | -version = "2.1.0" |
4 | | -publish = true |
5 | | -edition = "2021" |
6 | | -license = "MIT" |
7 | | -description = "Lightweight Ollama-compatible inference server with native SafeTensors support. No Python dependencies, cross-platform WebGPU acceleration via Airframe." |
8 | | -homepage = "https://github.com/Michael-A-Kuykendall/shimmy" |
9 | | -repository = "https://github.com/Michael-A-Kuykendall/shimmy" |
10 | | -readme = "README.md" |
11 | | -keywords = ["llm", "local-ai", "inference", "server", "api"] |
12 | | -categories = ["command-line-utilities", "web-programming::http-server"] |
13 | | -authors = ["Michael A. Kuykendall <michaelallenkuykendall@gmail.com>"] |
14 | | -include = [ |
15 | | - "src/**/*", |
16 | | - "templates/**/*", |
17 | | - "Cargo.toml", |
18 | | - "Cargo.lock", |
19 | | - "README.md", |
20 | | - "LICENSE", |
21 | | - "build.rs" |
22 | | -] |
23 | | - |
24 | | -[features] |
25 | | -default = ["airframe", "huggingface"] # Full GPU build; use --no-default-features --features huggingface for CPU-only |
26 | | -# Engine backends |
27 | | -airframe = ["dep:airframe"] # Airframe native GPU engine |
28 | | -huggingface = [] # Python integration, no additional Rust deps |
29 | | -mlx = [] # Apple MLX integration for Metal GPU acceleration on Apple Silicon |
30 | | -# Convenience feature sets |
31 | | -fast = ["huggingface"] # Fast compilation - no path deps (CI-safe) |
32 | | -full = ["airframe", "huggingface", "mlx"] # Full compilation - includes all backends |
33 | | -gpu = ["airframe", "huggingface"] # GPU-optimized build via Airframe |
34 | | -apple = ["airframe", "huggingface"] # Apple Silicon - Airframe via Metal + HuggingFace |
35 | | -coverage = ["huggingface"] # Coverage testing - no path deps, fast compile |
36 | | -llama = [] # Deprecated: llama.cpp removed in v2.0. Empty feature retained to silence cfg guards pending cleanup. |
37 | | -llama-cuda = [] # Deprecated: llama.cpp CUDA backend removed in v2.0. |
38 | | -llama-vulkan = [] # Deprecated: llama.cpp Vulkan backend removed in v2.0. |
39 | | -llama-opencl = [] # Deprecated: llama.cpp OpenCL backend removed in v2.0. |
40 | | - |
41 | | -[dependencies] |
42 | | -anyhow = "1" |
43 | | -axum = { version = "0.7", features = ["http1", "json", "ws", "macros"] } |
44 | | -async-trait = "0.1" |
45 | | -bytes = "1" |
46 | | -chrono = { version = "0.4", features = ["serde"] } |
47 | | -clap = { version = "4", features = ["derive"] } |
48 | | -futures-util = "0.3" |
49 | | -lazy_static = "1.5" |
50 | | -memmap2 = "0.9" |
51 | | -minijinja = { version = "2", features = ["loader"] } |
52 | | -parking_lot = "0.12" |
53 | | -rand = "0.8" |
54 | | -regex = "1" |
55 | | -safetensors = "0.4" |
56 | | -serde = { version = "1", features = ["derive"] } |
57 | | -serde_json = "1" |
58 | | -sys-info = "0.9" |
59 | | -sysinfo = "0.30" |
60 | | -tempfile = "3" |
61 | | -thiserror = "1" |
62 | | -tokio = { version = "1", features = ["macros","rt-multi-thread","signal","process","fs"] } |
63 | | -tokio-stream = "0.1" |
64 | | -tracing = "0.1" |
65 | | -tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } |
66 | | -uuid = { version = "1", features = ["v4", "serde"] } |
67 | | -dirs = "5.0" |
68 | | -reqwest = { version = "0.12", features = ["json", "rustls-tls", "stream"], default-features = false } |
69 | | - |
70 | | -# Airframe native GPU inference — public crate on crates.io |
71 | | -airframe = { version = "0.2.1", optional = true } |
72 | | - |
73 | | -[dev-dependencies] |
74 | | -tokio-tungstenite = "0.20" |
75 | | -criterion = { version = "0.5", features = ["html_reports"] } |
76 | | -serial_test = "3.1" # For serialized test execution |
77 | | -# Additional dependencies for mock testing infrastructure |
78 | | -tempfile = "3" # For creating temporary test directories |
79 | | -rand = "0.8" # For randomized testing scenarios (already in main deps) |
80 | | -assert_cmd = "2" # For CLI testing |
81 | | -predicates = "3" # For assertion predicates in tests |
82 | | -tower = { version = "0.5", features = ["util"] } # For test oneshot helper |
83 | | -# Note: tempfile is already in main dependencies, rand is already in main dependencies |
84 | | - |
85 | | -[profile.release] |
86 | | -lto = true |
87 | | -codegen-units = 1 |
88 | | -opt-level = "z" |
89 | | - |
90 | | -# Optimize build times for development |
91 | | -[profile.dev] |
92 | | -opt-level = 1 |
93 | | -debug = true |
94 | | - |
95 | | -# Faster builds for dependencies |
96 | | -[profile.dev.package."*"] |
97 | | -opt-level = 2 |
98 | | -debug = false |
99 | | - |
100 | | -# Benchmark configuration |
101 | | -[[bench]] |
102 | | -name = "model_loading" |
103 | | -harness = false |
104 | | - |
105 | | -[[bench]] |
106 | | -name = "generation_performance" |
107 | | -harness = false |
108 | | - |
109 | | -[workspace] |
110 | | - |
| 1 | +[package] |
| 2 | +name = "shimmy" |
| 3 | +version = "2.2.0" |
| 4 | +publish = true |
| 5 | +edition = "2021" |
| 6 | +license = "MIT" |
| 7 | +description = "Lightweight Ollama-compatible inference server with native SafeTensors support. No Python dependencies, cross-platform WebGPU acceleration via Airframe." |
| 8 | +homepage = "https://github.com/Michael-A-Kuykendall/shimmy" |
| 9 | +repository = "https://github.com/Michael-A-Kuykendall/shimmy" |
| 10 | +readme = "README.md" |
| 11 | +keywords = ["llm", "local-ai", "inference", "server", "api"] |
| 12 | +categories = ["command-line-utilities", "web-programming::http-server"] |
| 13 | +authors = ["Michael A. Kuykendall <michaelallenkuykendall@gmail.com>"] |
| 14 | +include = [ |
| 15 | + "src/**/*", |
| 16 | + "templates/**/*", |
| 17 | + "Cargo.toml", |
| 18 | + "Cargo.lock", |
| 19 | + "README.md", |
| 20 | + "LICENSE", |
| 21 | + "build.rs" |
| 22 | +] |
| 23 | + |
| 24 | +[features] |
| 25 | +default = ["airframe", "huggingface"] # Full GPU build; use --no-default-features --features huggingface for CPU-only |
| 26 | +# Engine backends |
| 27 | +airframe = ["dep:airframe"] # Airframe native GPU engine |
| 28 | +huggingface = [] # Python integration, no additional Rust deps |
| 29 | +mlx = [] # Apple MLX integration for Metal GPU acceleration on Apple Silicon |
| 30 | +# Convenience feature sets |
| 31 | +fast = ["huggingface"] # Fast compilation - no path deps (CI-safe) |
| 32 | +full = ["airframe", "huggingface", "mlx"] # Full compilation - includes all backends |
| 33 | +gpu = ["airframe", "huggingface"] # GPU-optimized build via Airframe |
| 34 | +apple = ["airframe", "huggingface"] # Apple Silicon - Airframe via Metal + HuggingFace |
| 35 | +coverage = ["huggingface"] # Coverage testing - no path deps, fast compile |
| 36 | +llama = [] # Deprecated: llama.cpp removed in v2.0. Empty feature retained to silence cfg guards pending cleanup. |
| 37 | +llama-cuda = [] # Deprecated: llama.cpp CUDA backend removed in v2.0. |
| 38 | +llama-vulkan = [] # Deprecated: llama.cpp Vulkan backend removed in v2.0. |
| 39 | +llama-opencl = [] # Deprecated: llama.cpp OpenCL backend removed in v2.0. |
| 40 | + |
| 41 | +[dependencies] |
| 42 | +anyhow = "1" |
| 43 | +axum = { version = "0.7", features = ["http1", "json", "ws", "macros"] } |
| 44 | +async-trait = "0.1" |
| 45 | +bytes = "1" |
| 46 | +chrono = { version = "0.4", features = ["serde"] } |
| 47 | +clap = { version = "4", features = ["derive"] } |
| 48 | +futures-util = "0.3" |
| 49 | +lazy_static = "1.5" |
| 50 | +memmap2 = "0.9" |
| 51 | +minijinja = { version = "2", features = ["loader"] } |
| 52 | +parking_lot = "0.12" |
| 53 | +rand = "0.8" |
| 54 | +regex = "1" |
| 55 | +safetensors = "0.4" |
| 56 | +serde = { version = "1", features = ["derive"] } |
| 57 | +serde_json = "1" |
| 58 | +sys-info = "0.9" |
| 59 | +sysinfo = "0.30" |
| 60 | +tempfile = "3" |
| 61 | +thiserror = "1" |
| 62 | +tokio = { version = "1", features = ["macros","rt-multi-thread","signal","process","fs"] } |
| 63 | +tokio-stream = "0.1" |
| 64 | +tracing = "0.1" |
| 65 | +tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } |
| 66 | +uuid = { version = "1", features = ["v4", "serde"] } |
| 67 | +dirs = "5.0" |
| 68 | +reqwest = { version = "0.12", features = ["json", "rustls-tls", "stream"], default-features = false } |
| 69 | + |
| 70 | +# Airframe native GPU inference — public crate on crates.io |
| 71 | +airframe = { version = "0.2.2", optional = true } |
| 72 | + |
| 73 | +[dev-dependencies] |
| 74 | +tokio-tungstenite = "0.20" |
| 75 | +criterion = { version = "0.5", features = ["html_reports"] } |
| 76 | +serial_test = "3.1" # For serialized test execution |
| 77 | +# Additional dependencies for mock testing infrastructure |
| 78 | +tempfile = "3" # For creating temporary test directories |
| 79 | +rand = "0.8" # For randomized testing scenarios (already in main deps) |
| 80 | +assert_cmd = "2" # For CLI testing |
| 81 | +predicates = "3" # For assertion predicates in tests |
| 82 | +tower = { version = "0.5", features = ["util"] } # For test oneshot helper |
| 83 | +# Note: tempfile is already in main dependencies, rand is already in main dependencies |
| 84 | + |
| 85 | +[profile.release] |
| 86 | +lto = true |
| 87 | +codegen-units = 1 |
| 88 | +opt-level = "z" |
| 89 | + |
| 90 | +# Optimize build times for development |
| 91 | +[profile.dev] |
| 92 | +opt-level = 1 |
| 93 | +debug = true |
| 94 | + |
| 95 | +# Faster builds for dependencies |
| 96 | +[profile.dev.package."*"] |
| 97 | +opt-level = 2 |
| 98 | +debug = false |
| 99 | + |
| 100 | +# Benchmark configuration |
| 101 | +[[bench]] |
| 102 | +name = "model_loading" |
| 103 | +harness = false |
| 104 | + |
| 105 | +[[bench]] |
| 106 | +name = "generation_performance" |
| 107 | +harness = false |
| 108 | + |
| 109 | +[workspace] |
| 110 | + |
0 commit comments