libjay 0.1.0

Independent, modern implementations of the J and APL array languages: parallel and vectorized, embeddable from Rust, Python, and C
Documentation
[package]
name = "libjay"
description = "Independent, modern implementations of the J and APL array languages: parallel and vectorized, embeddable from Rust, Python, and C"
readme = "README.md"
keywords = ["j", "apl", "array", "vectorization", "language"]
categories = ["compilers", "mathematics", "science"]
# The differential suite is developed against the repository, not the
# published crate: its corpora and recorded snapshots are several thousand
# expressions of test data, and the recorder that refreshes them lives in a
# workspace crate that is not published at all.
exclude = ["tests/"]
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true

[lib]
name = "jay"

[dependencies]
multiversion = "0.8"
# Arbitrary-precision integers: the carrier for J's extended type and for
# the two halves of a rational. The rational itself is ours — see
# docs/decisions.md.
num-bigint = "0.5"
num-integer = "0.1"
num-traits = "0.2"
# Blocking on wgpu's futures: libjay's surface is synchronous, and the
# device calls are the only asynchronous thing behind it.
pollster = "0.4"
rayon = "1.12.0"
# The device backend. Always compiled in — one artifact per platform — and
# dormant when the machine offers no adapter. Only the native backends and
# the WGSL front end are wanted; shaders are generated and compiled at run
# time, so nothing here runs at build time.
wgpu = { version = "26", default-features = false, features = [
    "std",
    "wgsl",
    "metal",
    "vulkan",
    "dx12",
] }

[dev-dependencies]
# Validating generated WGSL without an adapter: the f64 path cannot be run
# on a Metal machine, but it can be parsed and type-checked here.
naga = { version = "26", features = ["wgsl-in"] }
# The corpus/snapshot plumbing the differential suites replay, shared with
# the `jay-corpus` recorder in libjay-devtools.
libjay-testkit = { path = "../libjay-testkit" }
rstest = "0.25"