๐Ÿ“ฆ RightNow-AI / openfang

๐Ÿ“„ Cargo.toml ยท 134 lines
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134[workspace]
resolver = "2"
members = [
    "crates/openfang-types",
    "crates/openfang-memory",
    "crates/openfang-runtime",
    "crates/openfang-wire",
    "crates/openfang-api",
    "crates/openfang-kernel",
    "crates/openfang-cli",
    "crates/openfang-channels",
    "crates/openfang-migrate",
    "crates/openfang-skills",
    "crates/openfang-desktop",
    "crates/openfang-hands",
    "crates/openfang-extensions",
    "xtask",
]

[workspace.package]
version = "0.1.0"
edition = "2021"
license = "Apache-2.0 OR MIT"
repository = "https://github.com/RightNow-AI/openfang"
rust-version = "1.75"

[workspace.dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }
tokio-stream = "0.1"

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
rmp-serde = "1"

# Error handling
thiserror = "2"
anyhow = "1"

# Concurrency
dashmap = "6"
crossbeam = "0.8"

# Logging / Tracing
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }

# Time
chrono = { version = "0.4", features = ["serde"] }

# IDs
uuid = { version = "1", features = ["v4", "serde"] }

# Database
rusqlite = { version = "0.31", features = ["bundled", "serde_json"] }

# CLI
clap = { version = "4", features = ["derive"] }
clap_complete = "4"

# HTTP client (for LLM drivers)
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "multipart", "rustls-tls"] }

# Async trait
async-trait = "0.1"

# Base64
base64 = "0.22"

# Bytes
bytes = "1"

# Futures
futures = "0.3"

# WebSocket client (for Discord/Slack gateway)
tokio-tungstenite = { version = "0.24", features = ["native-tls"] }
url = "2"

# WASM sandbox
wasmtime = "41"

# HTTP server (for API daemon)
axum = { version = "0.8", features = ["ws"] }
tower = "0.5"
tower-http = { version = "0.6", features = ["cors", "trace", "compression-gzip", "compression-br"] }

# Home directory resolution
dirs = "6"

# YAML parsing
serde_yaml = "0.9"

# JSON5 parsing
json5 = "0.4"

# Directory walking
walkdir = "2"

# Security
sha2 = "0.10"
hmac = "0.12"
hex = "0.4"
subtle = "2"
ed25519-dalek = { version = "2", features = ["rand_core"] }
rand = "0.8"
zeroize = { version = "1", features = ["derive"] }

# Rate limiting
governor = "0.8"

# Interactive CLI
ratatui = "0.29"
colored = "3"

# Encryption
aes-gcm = "0.10"
argon2 = "0.5"

# Lightweight regex
regex-lite = "0.1"

# Testing
tokio-test = "0.4"
tempfile = "3"

[profile.release]
lto = true
codegen-units = 1
strip = true
opt-level = 3