[package]
name = "harn-hostlib"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "Opt-in code-intelligence and deterministic-tool host builtins for the Harn VM"
include = [
"src/**/*",
"schemas/**/*",
"data/**/*",
"tests/**/*",
"benches/**/*",
"Cargo.toml",
"README.md",
]
[features]
default = ["full"]
full = ["ast"]
computer = []
computer-local = ["computer", "dep:xcap", "dep:enigo", "dep:image"]
ast = [
"dep:tree-sitter",
"dep:streaming-iterator",
"grammars-all",
]
grammars-all = [
"grammar-harn",
"grammar-web",
"grammar-systems",
"grammar-scripting",
"grammar-jvm",
"grammar-enterprise",
"grammar-data",
]
grammar-harn = ["dep:tree-sitter-harn"]
grammar-web = [
"dep:tree-sitter-typescript",
"dep:tree-sitter-javascript",
"dep:tree-sitter-html",
"dep:tree-sitter-css",
]
grammar-systems = [
"dep:tree-sitter-rust",
"dep:tree-sitter-c",
"dep:tree-sitter-cpp",
"dep:tree-sitter-go",
"dep:tree-sitter-zig",
]
grammar-scripting = [
"dep:tree-sitter-python",
"dep:tree-sitter-ruby",
"dep:tree-sitter-bash",
"dep:tree-sitter-lua",
"dep:tree-sitter-php",
"dep:tree-sitter-r",
]
grammar-jvm = [
"dep:tree-sitter-java",
"dep:tree-sitter-kotlin-ng",
"dep:tree-sitter-scala",
]
grammar-enterprise = [
"dep:tree-sitter-c-sharp",
"dep:tree-sitter-swift",
"dep:tree-sitter-elixir",
"dep:tree-sitter-haskell",
]
grammar-data = [
"dep:tree-sitter-json",
"dep:tree-sitter-yaml",
"dep:tree-sitter-toml-ng",
"dep:tree-sitter-sequel",
"dep:tree-sitter-md",
]
[dependencies]
harn-vm = { path = "../harn-vm", version = "=0.9.21", default-features = false }
async-trait = "0.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha2 = "0.11"
hex = "0.4"
time = { version = "0.3", features = ["formatting"] }
tokio = { version = "1", features = ["rt", "macros", "sync", "fs", "net", "process", "time"] }
thiserror = "2"
tracing = "0.1"
tempfile = "3"
uuid = { version = "1", features = ["v7"] }
tree-sitter = { version = "0.26", optional = true }
streaming-iterator = { version = "0.1", optional = true }
grep-searcher = "0.1"
grep-matcher = "0.1"
grep-regex = "0.1"
ignore = "0.4"
notify = "8"
globset = "0.4"
walkdir = "2"
base64 = "0.22"
regex = "1"
xcap = { version = "0.9", optional = true }
enigo = { version = "0.6", optional = true }
image = { version = "0.25", optional = true }
tree-sitter-rust = { version = "0.24", optional = true }
tree-sitter-typescript = { version = "0.23", optional = true }
tree-sitter-javascript = { version = "0.25", optional = true }
tree-sitter-python = { version = "0.25", optional = true }
tree-sitter-go = { version = "0.25", optional = true }
tree-sitter-java = { version = "0.23", optional = true }
tree-sitter-c = { version = "0.24", optional = true }
tree-sitter-cpp = { version = "0.23", optional = true }
tree-sitter-c-sharp = { version = "0.23", optional = true }
tree-sitter-ruby = { version = "0.23", optional = true }
tree-sitter-kotlin-ng = { version = "1.1", optional = true }
tree-sitter-php = { version = "0.24", optional = true }
tree-sitter-scala = { version = "0.26", optional = true }
tree-sitter-bash = { version = "0.25", optional = true }
tree-sitter-swift = { version = "0.7", optional = true }
tree-sitter-zig = { version = "1.1", optional = true }
tree-sitter-elixir = { version = "0.3", optional = true }
tree-sitter-lua = { version = "0.5", optional = true }
tree-sitter-haskell = { version = "0.23", optional = true }
tree-sitter-r = { version = "1.2", optional = true }
tree-sitter-json = { version = "0.24", optional = true }
tree-sitter-yaml = { version = "0.7", optional = true }
tree-sitter-toml-ng = { version = "0.7", optional = true }
tree-sitter-css = { version = "0.25", optional = true }
tree-sitter-html = { version = "0.23", optional = true }
tree-sitter-sequel = { version = "0.3", optional = true }
tree-sitter-md = { version = "0.5", optional = true }
tree-sitter-harn = { path = "../../tree-sitter-harn", version = "=0.9.21", optional = true }
arcstr = { version = "1", features = ["serde", "std"] }
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies]
security-framework = "3.7"
[target.'cfg(target_os = "windows")'.dependencies]
windows-sys = { version = "0.61.2", features = [
"Win32_Foundation",
"Win32_Security_Credentials",
] }
[dev-dependencies]
serde_json = "1"
filetime = "0.2"
criterion = "0.8"
harn-lexer = { path = "../harn-lexer", version = "=0.9.21" }
harn-parser = { path = "../harn-parser", version = "=0.9.21" }
[[bench]]
name = "ast_parse"
harness = false
[[bench]]
name = "code_index_cypher"
harness = false
[lints]
workspace = true