| 1 | [package] |
| 2 | name = "sitiai" |
| 3 | version = "1.0.0" |
| 4 | description = "Siti AI — private, on-device personal assistant." |
| 5 | authors = ["Splitfire AB <support@getsiti.5mb.app>"] |
| 6 | edition = "2021" |
| 7 | license = "Apache-2.0" |
| 8 | repository = "https://github.com/ondeinference/siti" |
| 9 | homepage = "https://getsiti.5mb.app" |
| 10 | |
| 11 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html |
| 12 | |
| 13 | [lib] |
| 14 | # The `_lib` suffix may seem redundant but it is necessary |
| 15 | # to make the lib name unique and wouldn't conflict with the bin name. |
| 16 | # This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519 |
| 17 | name = "sitiai_lib" |
| 18 | crate-type = ["staticlib", "cdylib", "rlib"] |
| 19 | |
| 20 | [build-dependencies] |
| 21 | tauri-build = { version = "2", features = [] } |
| 22 | |
| 23 | [dependencies] |
| 24 | tauri = { version = "2", features = [] } |
| 25 | tauri-plugin-log = "2" |
| 26 | tauri-plugin-opener = "2" |
| 27 | serde = { version = "1", features = ["derive"] } |
| 28 | serde_json = "1" |
| 29 | log = "0.4" |
| 30 | once_cell = "1" |
| 31 | tokio = { version = "1", features = ["macros", "rt"] } |
| 32 | # On-device LLM inference engine (Metal on Apple, CPU on Android). |
| 33 | # Published crate: https://crates.io/crates/onde — this is the SDK Siti showcases. |
| 34 | # For local SDK development, uncomment the [patch.crates-io] block at the bottom |
| 35 | # of this file to build against a sibling `onde` checkout instead. |
| 36 | onde = "1.1" |
| 37 | |
| 38 | # Apple App Group container lookup — used to redirect the HuggingFace model |
| 39 | # cache into the shared `group.com.ondeinference.apps` container. |
| 40 | [target.'cfg(any(target_os = "ios", target_os = "macos"))'.dependencies] |
| 41 | objc2-foundation = { version = "0.3", features = [ |
| 42 | "NSFileManager", |
| 43 | "NSBundle", |
| 44 | "NSString", |
| 45 | ] } |
| 46 | |
| 47 | [profile.dev] |
| 48 | # GGUF inference is unusably slow at opt-level 0; 2 keeps dev builds bearable. |
| 49 | opt-level = 2 |
| 50 | incremental = false |
| 51 | |
| 52 | [profile.release] |
| 53 | opt-level = 3 |
| 54 | lto = "thin" |
| 55 | codegen-units = 1 |
| 56 | strip = "debuginfo" |
| 57 | |
| 58 | # Do NOT strip proc-macro / build-script dylibs. On beta macOS (Darwin 26/27) |
| 59 | # `strip = "debuginfo"` corrupts their Mach-O LINKEDIT ("mis-aligned LINKEDIT |
| 60 | # string pool"), so rustc can't dlopen them mid-build ("can't find crate for |
| 61 | # thiserror_impl"). The shipped app binary stays stripped via the profile above. |
| 62 | [profile.release.build-override] |
| 63 | strip = false |
| 64 | |
| 65 | # ── Local Onde SDK development ───────────────────────────────────────────────── |
| 66 | # Uncomment to build Siti against a local checkout of the Onde engine (sibling |
| 67 | # directory) instead of the published crate. Keep this commented on `main`. |
| 68 | # [patch.crates-io] |
| 69 | # onde = { path = "../../onde" } |