-
Notifications
You must be signed in to change notification settings - Fork 43
Expand file tree
/
Copy pathCargo.toml
More file actions
136 lines (125 loc) · 5.89 KB
/
Copy pathCargo.toml
File metadata and controls
136 lines (125 loc) · 5.89 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
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
135
136
[package]
name = "octocode"
version = "0.20.2"
edition = "2021"
rust-version = "1.95"
authors = ["Muvon Un Limited <opensource@muvon.io>"]
description = "AI-powered code intelligence with semantic search, knowledge graphs, and built-in MCP server. Transform your codebase into a queryable knowledge graph for AI assistants."
homepage = "https://octomind.ru"
repository = "https://github.com/muvon/octocode"
documentation = "https://docs.rs/octocode"
license = "Apache-2.0"
keywords = ["mcp-server", "code-intelligence", "semantic-search", "graphrag", "code-search"]
categories = ["development-tools", "command-line-utilities", "parsing", "text-processing", "algorithms"]
readme = "README.md"
exclude = [
"tests/fixtures/*",
"examples/*",
".github/*",
"docs/*",
"scripts/*",
"*.md",
"install.sh"
]
[lib]
doctest = false # Disable doctests to avoid feature conflicts on Windows
[features]
default = ["fastembed", "huggingface"]
fastembed = ["octolib/fastembed"]
huggingface = ["octolib/huggingface"]
# Optimized release profile for static linking
[profile.release]
lto = true # Enable Link Time Optimization
codegen-units = 1 # Reduce parallel code generation units for better optimization
panic = "abort" # Abort on panic for smaller binary size
strip = true # Strip symbols from binary
opt-level = "s" # Optimize for size, but keep loop vectorization ("z" disables it)
overflow-checks = false # Disable overflow checks in release mode
# Cross-compilation configuration is in .cargo/config.toml
[dependencies]
tokio = { version = "1.50.0", features = ["rt-multi-thread", "macros", "time", "sync", "io-util", "io-std", "process"] }
ignore = "0.4.25"
parking_lot = "0.12.5"
lance-table = { version = "2.0.0", default-features = false, features = [] }
lance = { version = "2.0.0", default-features = false, features = [] }
lancedb = { version = "0.26.2", default-features = false }
arrow = { version = "57.3.0", default-features = false, features = ["prettyprint"] }
arrow-array = { version = "57.3.0", default-features = false }
arrow-schema = { version = "57.3.0", default-features = false }
serde = { version = "1.0.228", features = ["derive"] }
chrono = { version = "0.4.44", default-features = false, features = ["serde", "clock"] }
async-trait = "0.1"
tree-sitter = "0.26.6"
tree-sitter-php = "0.24.2"
tree-sitter-rust = "0.24.0"
tree-sitter-python = "0.25.0"
tree-sitter-javascript = "0.25.0"
tree-sitter-json = "0.24.8"
tree-sitter-go = "0.25.0"
tree-sitter-cpp = "0.23.4"
tree-sitter-java = "0.23.5"
tree-sitter-bash = "0.25.1"
tree-sitter-css = "0.25.0"
tree-sitter-lua = "0.5.0"
uuid = { version = "1.20.0", default-features = false, features = ["v4"] }
tree-sitter-typescript = "0.23.2"
tree-sitter-ruby = "0.23.1"
tree-sitter-swift = "0.7.2"
tree-sitter-svelte-ng = "1.0.2"
reqwest = { version = "0.13.2", features = ["json", "rustls"], default-features = false }
anyhow = "1.0.102"
serde_json = "1.0.149"
sha2 = "0.10.9"
ast-grep-core = "0.42.1"
clap = { version = "4.5.60", features = ["derive"] }
clap_complete = "4.5.66"
notify = { version = "8.2.0", default-features = false, features = ["crossbeam-channel", "macos_fsevent"] }
notify-debouncer-mini = "0.7.0"
toml = "1.0.6"
toml_edit = "0.25.13"
lazy_static = "1.5.0"
futures = { version = "0.3.32", default-features = false, features = ["std"] }
globset = { version = "0.4.18", default-features = false }
regex = { version = "1.12.3", default-features = false, features = ["std"] }
dirs = "6.0.0"
# Pin time to =0.3.47 — time 0.3.48 introduced `impl From<HourBase> for <HourBase as ModifierValue>::Type`
# which conflicts with tantivy-common 0.9.0's blanket `From<B> for FileSlice`, causing E0119.
time = { version = "=0.3.47", default-features = false }
# EditorConfig parsing and formatting
ec4rs = "1.2.0"
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.22", features = ["env-filter", "json"] }
tracing-appender = "0.2.4"
# LSP integration dependencies
lsp-types = "0.97.0"
url = "2.5.8"
dotenvy = "0.15"
# Dataset export/import (octocode export | octocode import)
tar = "0.4"
zstd = { version = "0.13", default-features = false, features = ["zstdmt"] }
# Local dependency on octolib with embedding features
# octolib = { path = "../octolib", features = ["fastembed", "huggingface"] }
octolib = { version = "0.32.0", default-features = false }
# MCP SDK - official Rust implementation
rmcp = { version = "3.0.0", features = ["server", "macros", "transport-io", "transport-streamable-http-server"] }
schemars = "1" # Required for rmcp schema generation (must match rmcp's version)
hyper = { version = "1", features = ["server", "http1"] } # Required for HTTP mode connection handling
hyper-util = { version = "0.1", features = ["server", "tokio", "service"] } # Required for HTTP mode connection handling
http-body-util = "0.1" # Required for proxy HTTP body types (matches rmcp's version)
# Replace esaxx-rs 0.1.10 (transitive: tokenizers/esaxx_fast → esaxx-rs/cpp).
# Upstream build.rs hardcodes cc::Build::static_crt(true), forcing /MT on
# Windows MSVC and producing LNK2038 RuntimeLibrary mismatches when linking
# with ort (pyke prebuilt onnxruntime, built /MD). Pinned by SHA so a
# force-push on the fork branch cannot silently flip our build.
# Upstream PR: https://github.com/Narsil/esaxx-rs/pull/19 (unmerged).
[patch.crates-io]
esaxx-rs = { git = "https://github.com/ocentra/esaxx-rs", rev = "4f4fd5acd624e43c770a0d198fcaa9d97bfd7f0b" }
[profile.dev]
opt-level = 1 # Basic optimizations without slowing compilation too much
debug = true # Keep debug symbols for backtraces
debug-assertions = true # Keep runtime checks
overflow-checks = true # Keep overflow checks
lto = false # Disable Link Time Optimization to speed up builds
codegen-units = 256 # Use more codegen units for faster parallel compilation
incremental = true # Enable incremental compilation
rpath = false # Disable runtime search path