awkrs 0.4.21

Awk implementation in Rust with broad CLI compatibility, parallel records, and experimental Cranelift JIT
Documentation
[package]
name = "awkrs"
version = "0.4.21"
edition = "2021"
authors = ["MenkeTechnologies <linux.dev25@gmail.com>"]
# Keep the published crate lean: ship `src/`, `man/`, `completions/`,
# README/LICENSE — nothing else. Everything below (`parity/` vs gawk,
# the benchmarks, the docs site) stays in the git repo for local/CI use
# but is omitted from `cargo package` / the crates.io tarball. Mirrors
# strykelang's exclude set.
exclude = [
    "/.github/",
    "/tests/",
    "/examples/",
    "/docs/",
    "/assets/",
    "/bench/",
    "/benches/",
    "/benchmarks/",
    "/parity/",
    "/scripts/",
    "/vendor/",
    "/tools/",
    "/fuzz/",
    "/BUGS.md",
]
description = "Awk implementation in Rust with broad CLI compatibility, parallel records, and experimental Cranelift JIT"
license = "MIT"
repository = "https://github.com/MenkeTechnologies/awkrs"
homepage = "https://menketechnologies.github.io/awkrs/"
documentation = "https://docs.rs/awkrs"
readme = "README.md"
keywords = ["awk", "cli", "text-processing"]
categories = ["command-line-utilities", "parser-implementations"]

# awkrs is a standalone crate, not a workspace member. Declaring an explicit
# (empty) workspace root stops cargo walking up to any stray parent Cargo.toml.
[workspace]

[lib]
name = "awkrs"
path = "src/lib.rs"
# `staticlib` produces libawkrs.a so `--aot` can link AOT-compiled objects
# (fusevm::aot) against the awk runtime into a standalone executable.
crate-type = ["lib", "staticlib"]

[[bin]]
name = "awkrs"
path = "src/main.rs"

[[bin]]
name = "aw"
path = "src/bin/ars.rs"

# Offline generator for `docs/reference.html` — renders the LSP doc corpus
# (`awkrs::lsp`) as a static reference page. Run `cargo run --bin gen-docs`.
[[bin]]
name = "gen-docs"
path = "src/bin/gen_docs.rs"

[dependencies]
bincode = "1.3"
chrono = "0.4"
clap = { version = "4.5", features = ["derive", "cargo", "env"] }
dirs = "5"
gettext = "0.4"
fusevm = { version = "0.15.0", features = ["jit", "jit-disk-cache", "aot", "ffi"] }
cranelift-codegen = "0.130.0"
cranelift-frontend = "0.130.0"
cranelift-jit = "0.130.0"
cranelift-module = "0.130.0"
cranelift-native = "0.130.0"
libc = "0.2"
lsp-server = "0.7.9"
lsp-types = "0.97.0"
memchr = "2.7"
memmap2 = "0.9"
nix = { version = "0.29", features = ["fs"] }
nu-ansi-term = "0.50"
once_cell = "1"
reedline = "0.47.0"
sysinfo = { version = "0.38", default-features = false, features = ["system"] }
toml = "0.8"
parking_lot = "0.12"
rayon = "1.10"
gmp-mpfr-sys = "1.7"
regex = "1.10"
rkyv = { version = "0.7", features = ["validation", "archive_le", "size_32"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
socket2 = "0.5"
rug = "1.29.0"
rustc-hash = "2.1"
target-lexicon = "0.13.5"
thiserror = "2.0"
walkdir = "2.5"

[dev-dependencies]
tempfile = "3"

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(target_os, values("vms"))'] }

# Local fusevm-development override — kept out of the committed Cargo.toml
# because CI doesn't have `../fusevm` checked out. To work against a local
# fusevm tree, uncomment:
#
# [patch.crates-io]
# fusevm = { path = "../fusevm" }