Headless engines for common developer utilities, implemented in Rust and compiled to WebAssembly. Use them in the browser or any JS runtime that can load WASM (for example via wasm-bindgen).
npm install @ajitems/devtoolsThe package is built with wasm-pack for the web target. Initialize the module once, then call the exported functions. Each engine returns a JSON-shaped object with ok, optional data, and optional error (see ToolResult in the sources).
import init, { base64_encode, jwt_decode } from "@ajitems/devtools";
await init(); // WASM start (e.g. panic hook)
const encoded = base64_encode("hello", false);
// { ok: true, data: { output: "...", inputBytes: 5, outputBytes: ... }, error: null }
const decoded = jwt_decode("eyJ...");
// { ok: true | false, data: ..., error: ... }Exact import paths depend on how you bundle or serve the .wasm file; follow the wasm-pack web workflow for your toolchain.
| Area | Functions (high level) |
|---|---|
| Encoding | base64_encode, base64_decode |
| JSON | json_format, json_diff |
| JWT | jwt_decode |
| URL | url_process |
| Regex | regex_test |
| Env files | env_validate |
| Docker | docker_convert |
| Tokens / prompts | tokens_estimate, prompt_analyse |
| SLA | sla_calculate |
| Payroll / tax (India-oriented) | ctc_calculate, freelance_calculate, gst_calculate, gstin_validate, pan_validate |
| India utilities | validate_ifsc, estimate_cloud_cost, calculate_working_days, calculate_automation_roi, calculate_sprint_velocity, calculate_retry_budget |
With the cron feature (enabled in published builds): cron_parse.
Prerequisites: stable Rust, wasm32-unknown-unknown, and wasm-pack.
rustup target add wasm32-unknown-unknown
wasm-pack build --target web --release -- --features cron
cp package.npm.json pkg/package.jsonOptional Cargo features:
cron— cron expression parsing (cron_parse).minify— pulls in minify/CSS dependencies (seeCargo.toml; not required for the default npm build).
CI runs cargo clippy, cargo fmt --check, cargo test --all-features, and the WASM build above.
Releases are published to npm when a version tag v* is pushed (see .github/workflows/publish.yml).
MIT. See LICENSE.