Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
89 lines (75 loc) · 3 KB
/
Copy pathCargo.toml
File metadata and controls
89 lines (75 loc) · 3 KB
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
# SPDX-License-Identifier: MPL-2.0
#
# PanLL eNSAID — Gossamer backend
#
# This replaces the former src-tauri/ Tauri 2.0 backend with a Gossamer-native
# binary. IPC commands are registered via gossamer_rs::App::command() in
# `register_commands` (src-gossamer/src/main.rs) instead of #[tauri::command]
# macros. Only 36 command handlers are registered today; the panel-backend
# modules in the lib carry many more that compile and are tested but are not
# yet registered (docs/TECHNICAL_DEBT.adoc, F1).
#
# The gossamer-rs crate statically links libgossamer (Zig FFI, built from
# source or taken from GOSSAMER_LIB_DIR), providing the same webview + IPC
# channel that Tauri provided, but without the Tauri runtime dependency.
[package]
name = "panll"
version = "0.2.0"
description = "PanLL eNSAID - Environment for NeSy-Agentic Integrated Development (Gossamer backend)"
authors = ["Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"]
edition = "2021"
license = "MPL-2.0"
repository = "https://github.com/hyperpolymath/panll"
# Testable logic library — GTK/WebKit-free. `cargo test --lib` runs without
# linking libgossamer or the GTK/WebKit stack. The bin depends on this lib.
[lib]
name = "panll"
path = "src-gossamer/src/lib.rs"
[[bin]]
name = "panll-gossamer"
path = "src-gossamer/src/main.rs"
required-features = ["gossamer"]
# The desktop shell is opt-in: gossamer-rs compiles libgossamer from source
# (Zig 0.15.2 + GTK 3 + WebKitGTK 4.1), so it must not be pulled into the lib.
# cargo run --features gossamer --bin panll-gossamer
# To build against a local gossamer checkout instead of the pinned commit, put
# a [patch."https://github.com/metadatastician/gossamer"] entry in your own
# .cargo/config.toml (not committed).
[features]
default = []
gossamer = ["dep:gossamer-rs"]
[dependencies]
# Gossamer webview shell — replaces tauri. Pinned by commit: a path dependency
# on a sibling checkout cannot resolve in CI or for anyone else.
gossamer-rs = { git = "https://github.com/metadatastician/gossamer", rev = "c234fea6d8e41a6c9080b3dea97a1885fca1f9a7", optional = true }
# Serialisation — used by every command handler
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Shared state (replaces Tauri State<> extractor)
once_cell = "1"
lazy_static = "1.4.0"
# HTTP clients for service bridges (BoJ, VeriSimDB, ECHIDNA, Fleet, Hypatia, etc.)
reqwest = { version = "0.12", features = ["json", "blocking", "stream"] }
futures = "0.3"
tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread"] }
# Filesystem — dirs, watcher, walker
dirs = "6"
notify = { version = "7", features = ["serde"] }
notify-debouncer-mini = "0.5"
walkdir = "2"
# Text processing
regex = "1"
# System
libc = "0.2"
which = "7"
uuid = { version = "1.22.0", features = ["v4"] }
# Dynamic loading of the Zig coprocessor FFI shared library (Phase 2 data plane)
libloading = "0.8"
[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt"] }
[profile.release]
panic = "abort"
codegen-units = 1
lto = true
opt-level = "s"
strip = true