[[bench]]
name = "compilation_bench"
path = "benches/compilation_bench.rs"
[[bench]]
name = "execution_bench"
path = "benches/execution_bench.rs"
[[bench]]
harness = false
name = "interpreter_benchmarks"
path = "benches/interpreter_benchmarks.rs"
[[bench]]
harness = false
name = "parser"
path = "benches/parser.rs"
[[bench]]
harness = false
name = "parser_benchmarks"
path = "benches/parser_benchmarks.rs"
[[bench]]
harness = false
name = "performance_v3_13"
path = "benches/performance_v3_13.rs"
[[bench]]
harness = false
name = "transpiler"
path = "benches/transpiler.rs"
[[bench]]
harness = false
name = "transpiler_benchmarks"
path = "benches/transpiler_benchmarks.rs"
[[bench]]
harness = false
name = "wasm_performance"
path = "benches/wasm_performance.rs"
[[bin]]
name = "ruchy"
path = "src/bin/ruchy.rs"
[dependencies.anyhow]
version = "1.0"
[dependencies.arrow]
optional = true
version = "54.0"
[dependencies.arrow-array]
optional = true
version = "54.0"
[dependencies.arrow-buffer]
optional = true
version = "54.0"
[dependencies.arrow-schema]
optional = true
version = "54.0"
[dependencies.async-trait]
optional = true
version = "0.1"
[dependencies.axum]
features = ["macros"]
optional = true
version = "0.7"
[dependencies.chrono]
features = ["serde"]
version = "0.4"
[dependencies.clap]
features = ["derive"]
version = "4.5"
[dependencies.colored]
version = "3.0"
[dependencies.console_error_panic_hook]
version = "0.1"
[dependencies.im]
version = "15.1"
[dependencies.js-sys]
version = "0.3"
[dependencies.logos]
version = "0.15"
[dependencies.notify]
version = "8.2"
[dependencies.num_cpus]
version = "1.17"
[dependencies.once_cell]
version = "1.21"
[dependencies.pest]
version = "2.8"
[dependencies.pest_derive]
version = "2.8"
[dependencies.pmcp]
features = ["full"]
optional = true
version = "1.3.0"
[dependencies.polars]
features = ["lazy"]
optional = true
version = "0.50"
[dependencies.prettyplease]
version = "0.2"
[dependencies.proc-macro2]
version = "1.0"
[dependencies.proptest]
optional = true
version = "1.7"
[dependencies.quickcheck]
version = "1.0"
[dependencies.quote]
version = "1.0"
[dependencies.rand]
version = "0.8"
[dependencies.regex]
version = "1.11"
[dependencies.rustyline]
version = "17.0"
[dependencies.serde]
features = ["derive"]
version = "1.0"
[dependencies.serde-wasm-bindgen]
version = "0.6"
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.10"
[dependencies.smallvec]
version = "1.15"
[dependencies.syn]
features = ["full", "extra-traits", "visit-mut"]
version = "2.0"
[dependencies.tempfile]
version = "3.21"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
features = ["full"]
optional = true
version = "1.47"
[dependencies.tokio-util]
features = ["rt"]
optional = true
version = "0.7"
[dependencies.toml]
version = "0.9"
[dependencies.tower]
features = ["util"]
optional = true
version = "0.4"
[dependencies.tower-http]
features = ["cors"]
optional = true
version = "0.5"
[dependencies.tower-lsp]
optional = true
version = "0.20"
[dependencies.tracing]
version = "0.1"
[dependencies.uuid]
features = ["v4"]
version = "1.18"
[dependencies.walkdir]
version = "2.5"
[dependencies.wasm-bindgen]
version = "0.2"
[dependencies.wasm-encoder]
version = "0.207.0"
[dependencies.wasmparser]
optional = true
version = "0.239.0"
[dependencies.wasmtime]
optional = true
version = "36.0.2"
[dependencies.web-sys]
features = ["console"]
version = "0.3"
[dev-dependencies.arbitrary]
features = ["derive"]
version = "1.3"
[dev-dependencies.assert_cmd]
version = "2.0"
[dev-dependencies.axum]
features = ["macros"]
version = "0.7"
[dev-dependencies.criterion]
version = "0.7"
[dev-dependencies.insta]
features = ["yaml"]
version = "1.43"
[dev-dependencies.predicates]
version = "3.1"
[dev-dependencies.proptest]
version = "1.7"
[dev-dependencies.quickcheck]
version = "1.0"
[dev-dependencies.quickcheck_macros]
version = "1.1"
[dev-dependencies.reqwest]
features = ["json"]
version = "0.12"
[dev-dependencies.serde-wasm-bindgen]
version = "0.6"
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.tempfile]
version = "3.21"
[dev-dependencies.tokio]
features = ["macros", "rt-multi-thread"]
version = "1"
[dev-dependencies.tower]
features = ["util"]
version = "0.4"
[dev-dependencies.tracing-subscriber]
version = "0.3"
[dev-dependencies.walkdir]
version = "2.5"
[dev-dependencies.wasm-bindgen-test]
version = "0.3"
[[example]]
name = "async_await"
path = "examples/async_await.rs"
[[example]]
name = "dataframe_pipeline"
path = "examples/dataframe_pipeline.rs"
[[example]]
name = "debug_ast"
path = "examples/debug_ast.rs"
[[example]]
name = "debug_repl"
path = "examples/debug_repl.rs"
[[example]]
name = "debug_wasm_simple"
path = "examples/debug_wasm_simple.rs"
[[example]]
name = "function_calls"
path = "examples/function_calls.rs"
[[example]]
name = "notebook_acceptance_tests"
path = "examples/notebook_acceptance_tests.rs"
[[example]]
name = "notebook_server"
path = "examples/notebook_server.rs"
[[example]]
name = "parser_demo"
path = "examples/parser_demo.rs"
[[example]]
name = "reference_demo"
path = "examples/reference_demo.rs"
[[example]]
name = "repl_basic_arithmetic"
path = "examples/repl_basic_arithmetic.rs"
[[example]]
name = "repl_control_flow"
path = "examples/repl_control_flow.rs"
[[example]]
name = "repl_variables_and_functions"
path = "examples/repl_variables_and_functions.rs"
[[example]]
name = "score_examples"
path = "examples/score_examples.rs"
[[example]]
name = "test_mutation"
path = "examples/test_mutation.rs"
[[example]]
name = "test_string_methods"
path = "examples/test_string_methods.rs"
[[example]]
name = "transpiler_demo"
path = "examples/transpiler_demo.rs"
[[example]]
name = "wasm_compile"
path = "examples/wasm_compile.rs"
[[example]]
name = "wasm_minimal"
path = "examples/wasm_minimal.rs"
[features]
batteries-included = ["notebook", "wasm-compile"]
dataframe = ["polars", "arrow", "arrow-array", "arrow-buffer", "arrow-schema"]
default = ["batteries-included"]
mcp = ["tokio", "tokio-util", "pmcp", "async-trait", "tower-lsp"]
minimal = []
notebook = ["tokio", "tokio-util", "axum", "tower", "tower-http", "wasmparser", "wasmtime"]
testing = ["proptest"]
wasm-compile = []
[lib]
crate-type = ["cdylib", "rlib"]
name = "ruchy"
path = "src/lib.rs"
[lints.clippy]
absurd_extreme_comparisons = "allow"
approx_constant = "allow"
cargo_common_metadata = "warn"
cast_lossless = "warn"
cast_possible_truncation = "warn"
cast_possible_wrap = "warn"
cast_precision_loss = "allow"
cast_sign_loss = "warn"
checked_conversions = "warn"
cloned_instead_of_copied = "warn"
cognitive_complexity = "allow"
dbg_macro = "deny"
default_trait_access = "allow"
doc_markdown = "warn"
empty_enum = "warn"
empty_line_after_doc_comments = "allow"
enum_glob_use = "deny"
enum_variant_names = "warn"
expect_used = "allow"
expl_impl_clone_on_copy = "warn"
explicit_deref_methods = "warn"
explicit_into_iter_loop = "warn"
explicit_iter_loop = "warn"
filter_map_next = "warn"
flat_map_option = "warn"
float_cmp = "allow"
float_cmp_const = "warn"
fn_params_excessive_bools = "warn"
format_push_string = "allow"
from_iter_instead_of_collect = "warn"
if_not_else = "warn"
implicit_clone = "warn"
implicit_hasher = "warn"
implicit_saturating_sub = "warn"
inconsistent_struct_constructor = "warn"
inefficient_to_string = "warn"
inline_always = "warn"
invalid_upcast_comparisons = "warn"
items_after_statements = "warn"
large_digit_groups = "warn"
large_stack_arrays = "warn"
large_types_passed_by_value = "warn"
let_unit_value = "warn"
linkedlist = "warn"
macro_use_imports = "warn"
manual_assert = "warn"
manual_instant_elapsed = "warn"
manual_let_else = "warn"
manual_ok_or = "warn"
manual_string_new = "warn"
map_flatten = "warn"
map_unwrap_or = "warn"
match_bool = "warn"
match_same_arms = "warn"
match_wild_err_arm = "warn"
match_wildcard_for_single_variants = "warn"
maybe_infinite_iter = "warn"
mismatching_type_param_order = "warn"
missing_errors_doc = "warn"
missing_fields_in_debug = "warn"
missing_panics_doc = "warn"
module_inception = "allow"
module_name_repetitions = "warn"
must_use_candidate = "warn"
mut_mut = "warn"
naive_bytecount = "warn"
needless_bitwise_bool = "warn"
needless_continue = "warn"
needless_for_each = "warn"
needless_pass_by_value = "warn"
needless_raw_string_hashes = "warn"
negative_feature_names = "warn"
no_effect_underscore_binding = "warn"
no_mangle_with_rust_abi = "warn"
option_option = "warn"
panic = "allow"
print_stderr = "allow"
print_stdout = "allow"
pub_without_shorthand = "warn"
range_minus_one = "warn"
range_plus_one = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
redundant_clone = "warn"
redundant_closure_for_method_calls = "warn"
redundant_else = "warn"
redundant_feature_names = "warn"
redundant_pub_crate = "warn"
ref_binding_to_reference = "warn"
ref_option_ref = "warn"
return_self_not_must_use = "warn"
same_functions_in_if_condition = "warn"
semicolon_if_nothing_returned = "warn"
should_panic_without_expect = "warn"
similar_names = "warn"
single_match_else = "warn"
stable_sort_primitive = "warn"
string_add = "warn"
string_add_assign = "warn"
struct_excessive_bools = "warn"
struct_field_names = "warn"
todo = "warn"
too_many_lines = "warn"
trait_duplication_in_bounds = "warn"
transmute_ptr_to_ptr = "warn"
trivially_copy_pass_by_ref = "warn"
type_repetition_in_bounds = "warn"
unchecked_duration_subtraction = "warn"
unicode_not_nfc = "warn"
unimplemented = "warn"
uninlined_format_args = "warn"
unnecessary_box_returns = "warn"
unnecessary_join = "warn"
unnecessary_to_owned = "allow"
unnecessary_wraps = "warn"
unnested_or_patterns = "warn"
unreadable_literal = "warn"
unused_async = "warn"
unused_self = "warn"
unwrap_used = "allow"
used_underscore_binding = "warn"
verbose_bit_mask = "warn"
verbose_file_reads = "warn"
wildcard_imports = "warn"
zero_sized_map_values = "warn"
[lints.clippy.complexity]
level = "warn"
priority = -1
[lints.clippy.correctness]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.clippy.perf]
level = "warn"
priority = -1
[lints.clippy.style]
level = "warn"
priority = -1
[lints.clippy.suspicious]
level = "deny"
priority = -1
[lints.rust]
missing_docs = "allow"
unsafe_code = "forbid"
[package]
authors = ["Noah Gift"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["compilers", "development-tools", "parser-implementations"]
description = "A systems scripting language that transpiles to idiomatic Rust with extreme quality engineering"
edition = "2021"
exclude = ["src/bin/ruchy-coverage.rs", "src/bin/ruchy-lsp.rs", "coverage/", "node_modules/", "docs/specifications/", "tests/tdd_*"]
keywords = ["language", "compiler", "transpiler", "rust", "scripting"]
license = "MIT OR Apache-2.0"
name = "ruchy"
readme = "README.md"
repository = "https://github.com/paiml/ruchy"
version = "3.36.0"
[profile.coverage]
codegen-units = 1
debug = 2
debug-assertions = true
incremental = false
inherits = "test"
lto = false
opt-level = 0
overflow-checks = true
panic = "abort"
[profile.dev]
opt-level = 0
[profile.release]
opt-level = "z"
[profile.release-dist]
codegen-units = 1
inherits = "release"
lto = "fat"
opt-level = "z"
panic = "abort"
strip = true
[profile.wasm-test]
codegen-units = 1
inherits = "test"
lto = true
opt-level = "s"
strip = true
[target.'cfg(target_arch = "wasm32")'.dependencies.console_error_panic_hook]
version = "0.1"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
features = ["js"]
version = "0.2"
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.tokio]
features = ["macros", "rt", "time"]
optional = true
version = "1.47"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
[[test]]
name = "compatibility_suite"
path = "tests/compatibility_suite.rs"
[[test]]
name = "compiler_features"
path = "tests/compiler_features.rs"
[[test]]
name = "edge_case_tests"
path = "tests/edge_case_tests.rs"
[[test]]
name = "example_programs"
path = "tests/example_programs.rs"
[[test]]
name = "extreme_quality_tests"
path = "tests/extreme_quality_tests.rs"
[[test]]
name = "extreme_tdd_compound_assignments"
path = "tests/extreme_tdd_compound_assignments.rs"
[[test]]
name = "extreme_tdd_coverage_final_push"
path = "tests/extreme_tdd_coverage_final_push.rs"
[[test]]
name = "extreme_tdd_final_80_percent"
path = "tests/extreme_tdd_final_80_percent.rs"
[[test]]
name = "extreme_tdd_final_push"
path = "tests/extreme_tdd_final_push.rs"
[[test]]
name = "extreme_tdd_imports"
path = "tests/extreme_tdd_imports.rs"
[[test]]
name = "extreme_tdd_parser_coverage"
path = "tests/extreme_tdd_parser_coverage.rs"
[[test]]
name = "extreme_tdd_repl_boost"
path = "tests/extreme_tdd_repl_boost.rs"
[[test]]
name = "extreme_tdd_simple_coverage"
path = "tests/extreme_tdd_simple_coverage.rs"
[[test]]
name = "extreme_tdd_ternary_operator"
path = "tests/extreme_tdd_ternary_operator.rs"
[[test]]
name = "final_eight_to_eighty"
path = "tests/final_eight_to_eighty.rs"
[[test]]
name = "final_nine_tests"
path = "tests/final_nine_tests.rs"
[[test]]
name = "final_quality_push"
path = "tests/final_quality_push.rs"
[[test]]
name = "final_seven_victory"
path = "tests/final_seven_victory.rs"
[[test]]
name = "integration_working_features"
path = "tests/integration_working_features.rs"
[[test]]
name = "parser_property_tests"
path = "tests/parser_property_tests.rs"
[[test]]
name = "repl_aggressive_80_percent_final"
path = "tests/repl_aggressive_80_percent_final.rs"
[[test]]
name = "repl_core_api_tdd"
path = "tests/repl_core_api_tdd.rs"
[[test]]
name = "repl_coverage_boost"
path = "tests/repl_coverage_boost.rs"
[[test]]
name = "repl_interpreter_comparison_tdd"
path = "tests/repl_interpreter_comparison_tdd.rs"
[[test]]
name = "sprint1_interp_001_control_flow"
path = "tests/sprint1_interp_001_control_flow.rs"
[[test]]
name = "sprint1_interp_001_expressions"
path = "tests/sprint1_interp_001_expressions.rs"
[[test]]
name = "sprint1_interp_001_functions"
path = "tests/sprint1_interp_001_functions.rs"
[[test]]
name = "test_attribute_regression"
path = "tests/test_attribute_regression.rs"
[[test]]
name = "test_import_basic"
path = "tests/test_import_basic.rs"
[[test]]
name = "transpiler_statements_simple_tdd"
path = "tests/transpiler_statements_simple_tdd.rs"
[[test]]
name = "unified_spec_tests"
path = "tests/unified_spec_tests.rs"