thread-ast-engine 0.1.1

Core AST engine for Thread - parsing, matching, and transforming code using AST patterns. Forked from ast-grep-core.
Documentation
# SPDX-FileCopyrightText: 2025 Knitli Inc. <knitli@knit.li>
# SPDX-FileContributor: Adam Poulemanos <adam@knit.li>
# SPDX-License-Identifier: MIT OR Apache-2.0

[package]
name = "thread-ast-engine"
version = "0.1.1"
edition.workspace = true
rust-version.workspace = true
description = "Core AST engine for Thread - parsing, matching, and transforming code using AST patterns. Forked from ast-grep-core."
documentation.workspace = true
readme = "README.md"
homepage.workspace = true
repository.workspace = true
license = "AGPL-3.0-or-later AND MIT"
keywords = ["ast", "codemod", "pattern", "rewrite", "search"]
categories.workspace = true
include.workspace = true

[dependencies]
bit-set.workspace = true
mimalloc = { workspace = true, optional = true }
# regex required for pattern matching
regex = { workspace = true, optional = true }
thiserror.workspace = true
thread-utilities = { workspace = true, default-features = false, features = [
  "hashers",
  "simd",
] }
# Tree-sitter required for parsing
tree-sitter = { workspace = true, optional = true }

[dev-dependencies]
criterion = { version = "0.8.2", features = ["html_reports"] }
tree-sitter-typescript = "0.23.2"

[build-dependencies]
cc = "1.2.30"

[features]
default = ["matching", "mimalloc", "parsing"]
# The 'matching' feature enables the pattern matching engine
matching = ["dep:regex"]
mimalloc = ["dep:mimalloc", "thread-utilities/mimalloc"]
# The 'parsing' feature enables the tree-sitter backend
parsing = ["dep:tree-sitter"]
worker = [
  "thread-utilities/worker"
]  # feature flag for cloud edge deployment specific logic

[lints]
# Enable linting for the crate
workspace = true