# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.95"
name = "kataan"
version = "0.0.2"
authors = ["Karpelès Lab Inc."]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A high-performance JavaScript engine written in pure Rust. Library, C FFI, and CLI."
readme = "README.md"
keywords = [
    "javascript",
    "ecmascript",
    "engine",
    "interpreter",
    "vm",
]
categories = [
    "compilers",
    "parser-implementations",
    "development-tools",
]
license = "MIT"
repository = "https://github.com/KarpelesLab/kataan"

[features]
alloc = []
cli = [
    "std",
    "regex",
    "module",
    "host",
]
crypto = [
    "host",
    "dep:purecrypto",
]
default = [
    "std",
    "regex",
    "intl",
    "module",
    "host",
    "cli",
    "crypto",
]
fetch = [
    "host",
    "dep:rsurl",
]
ffi = ["std"]
host = ["std"]
intl = [
    "alloc",
    "dep:intl",
]
jit = ["std"]
module = []
regex = []
std = ["alloc"]

[lib]
name = "kataan"
path = "src/lib.rs"

[[bin]]
name = "kataan"
path = "src/bin/kataan/main.rs"
required-features = ["cli"]

[[test]]
name = "conformance_bytecode"
path = "tests/conformance_bytecode.rs"

[[test]]
name = "conformance_newmodel"
path = "tests/conformance_newmodel.rs"

[[test]]
name = "test262"
path = "tests/test262.rs"

[[test]]
name = "wasm_exec"
path = "tests/wasm_exec.rs"

[dependencies.intl]
version = "0.4"
features = [
    "full",
    "alloc",
    "case",
    "collation",
]
optional = true
default-features = false

[dependencies.purecrypto]
version = "0.6"
features = [
    "rng",
    "hash",
    "cipher",
    "linux-getrandom",
]
optional = true
default-features = false

[dependencies.rsurl]
version = "0.0"
features = ["purecrypto-tls"]
optional = true
default-features = false

[lints.rust]
missing_docs = "warn"
unreachable_pub = "warn"
unsafe_code = "deny"

[profile.bench]
lto = "thin"
codegen-units = 1

[profile.release]
lto = "thin"
codegen-units = 1
