A developer utility toolkit built with Rust + WebAssembly (Yew framework), served by nginx.
- Home
- Info — Client info: IP address, local date/time, UTC, geolocation with Google Maps
- GitHub — GitHub profile and highlighted projects (pgc, pg_dbms_job, nettrash.me)
- Math
- Hash — MD5, SHA1, SHA256, SHA384, SHA512
- Luhn — Luhn algorithm validation
- GUID — UUID v4 generation
- Plot — Function graph plotter (SVG output, supports sin/cos/tan/sqrt/exp/ln/etc.)
- Text — Base64, URL, Hex encode/decode, RegEx matching, Password generator (random, pronounceable, passphrase modes), Case converter (snake/camel/kebab/Pascal/Title/dot/path/sentence), Unicode inspector (codepoints, UTF-8/16 bytes, NFC/NFD/NFKC/NFKD normalization, invisible/format char detection)
- Converters
- Unixtime — Unix timestamp ↔ date conversion
- 1D/2D Code — QR code, DataMatrix, Aztec, Code128, Code39, EAN-13, EAN-8, Codabar, ITF (SVG output)
- JSON Formatter — JSON pretty-print / minify
- Data Converter — Unified JSON / YAML / TOML / CSV converter (all 12 direction combinations)
- JSON Schema — Validate JSON data against a JSON Schema
- Markdown — Live Markdown preview with rendered HTML output
- Diff — Side-by-side text diff with line-level highlighting
- Cron — Explain cron expressions and preview the next 8 scheduled runs (UTC)
- CIDR — IPv4/IPv6 subnet calculator (network, broadcast, range, host count, classification)
- Color — hex/rgb/hsl parser, swatches, live preview, WCAG contrast ratio + grade
- Encryption
- Symmetric — AES-128/192/256, DES, 3DES, Blowfish, Twofish (CBC/PKCS7)
- Asymmetric
- RSA — RSA-1024/2048/3072/4096 key generation (Web Crypto API), encrypt/decrypt (PKCS1v15, OAEP-SHA1, OAEP-SHA256)
- ECDSA — P-256/P-384 key generation, sign/verify
- Ed25519 — Key generation, sign/verify, ECIES encrypt/decrypt (X25519 + AES-256-CBC)
- ECDH — P-256/P-384 key exchange, shared secret derivation
- X25519 — Key exchange, shared secret derivation
- JWT Decoder — Decode and inspect JWT tokens (header + payload)
- HMAC — Compute HMAC using SHA-1, SHA-256, SHA-384, SHA-512
- TOTP/HOTP — Generate TOTP and HOTP one-time passwords (RFC 6238 / RFC 4226)
- X.509 — Parse PEM-encoded certificates and PKCS#10 CSRs (subject, issuer, validity, key info, SAN, key usage)
All state is persisted in sessionStorage. Everything runs client-side in WebAssembly — no data leaves the browser. nginx serves the static files and provides the client IP via a tiny /api/ip endpoint.
- Rust (stable)
wasm32-unknown-unknowntarget:rustup target add wasm32-unknown-unknown- Trunk:
cargo install trunk - nginx
cd frontend && trunk build --release# Copy built files to nginx web root
cp -r dist/* /var/www/nettrash.me/
# Copy and enable nginx config
cp nginx.conf /etc/nginx/sites-available/nettrash.me
ln -s /etc/nginx/sites-available/nettrash.me /etc/nginx/sites-enabled/
nginx -t && nginx -s reloadcd frontend && trunk serveCargo.toml # Workspace root
nginx.conf # nginx site config
frontend/ # Yew WASM frontend
Cargo.toml
Trunk.toml
index.html # HTML shell
styles.css # Global styles
src/
main.rs # App entry, router
components/
nav_menu.rs # Navigation bar
home.rs # Home page (info, GitHub)
math.rs # Math tools (hash, luhn, guid, plot)
text.rs # Text tools (base64, url, hex, regex, password)
converters.rs # Converters (unixtime, 1D/2D codes, JSON, data converter, schema, markdown, diff)
encryption.rs # Encryption tools (symmetric, asymmetric, JWT, HMAC, TOTP/HOTP)
dist/ # Built WASM output (generated by trunk build)