Skip to content

nettrash/nettrash-me

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nettrash.me

Version

A developer utility toolkit built with Rust + WebAssembly (Yew framework), served by nginx.

Features

  • 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.

Prerequisites

  • Rust (stable)
  • wasm32-unknown-unknown target: rustup target add wasm32-unknown-unknown
  • Trunk: cargo install trunk
  • nginx

Build

cd frontend && trunk build --release

Deploy

# 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 reload

Development

cd frontend && trunk serve

Project Structure

Cargo.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)

About

nettrash.me

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors