| Crates.io | morsewave |
| lib.rs | morsewave |
| version | 0.1.0 |
| created_at | 2025-11-07 23:31:57.454648+00 |
| updated_at | 2025-11-07 23:31:57.454648+00 |
| description | High-performance Morse code encoder/decoder with WebAssembly support and Web Audio API playback |
| homepage | https://chronocoders.github.io/morsewave |
| repository | https://github.com/ChronoCoders/morsewave |
| max_upload_size | |
| id | 1922337 |
| size | 29,050 |
Retro Telegraph Reimagined - A high-performance Morse code encoder/decoder built with Rust and WebAssembly.
MorseWave combines vintage telegraph aesthetics with modern web technology to create an immersive Morse code learning and communication tool. Built with Rust for core logic and compiled to WebAssembly for browser performance, it features a retro-futuristic CRT interface with real-time audio and visual feedback.
| Component | Technology |
|---|---|
| Core Logic | Rust 2021 Edition |
| Compilation | WebAssembly (WASM) |
| Audio | Web Audio API |
| Visualization | Canvas API |
| Storage | LocalStorage API |
| Build Tool | wasm-pack |
| Frontend | Vanilla JavaScript |
git clone https://github.com/chronocoder/morsewave.git
cd morsewave
build.bat
The build script will:
cargo install wasm-pack
wasm-pack build --target web --out-dir www/pkg
cd www
python -m http.server 8080
Open http://localhost:8080 in your browser.
For subsequent runs, use the start script:
start.bat
. for dot- for dash/ for word space. or J key- or K key| Key | Action |
|---|---|
. or J |
Dot |
- or K |
Dash |
| Space | Character space |
A .- B -... C -.-. D -.. E . F ..-.
G --. H .... I .. J .--- K -.- L .-..
M -- N -. O --- P .--. Q --.- R .-.
S ... T - U ..- V ...- W .-- X -..-
Y -.-- Z --..
0 ----- 1 .---- 2 ..--- 3 ...-- 4 ....-
5 ..... 6 -.... 7 --... 8 ---.. 9 ----.
morsewave/
├── src/
│ └── lib.rs # Rust core logic
├── www/
│ ├── index.html # Main interface
│ ├── favicon.svg # Site icon
│ ├── css/
│ │ └── style.css # Retro-futuristic styling
│ ├── js/
│ │ └── app.js # Application logic
│ └── pkg/ # Generated WASM files
├── Cargo.toml # Rust dependencies
├── build.bat # Build automation
├── start.bat # Server startup
└── README.md # Documentation
Adjust WPM (Words Per Minute) from 5 to 40:
Formula: dot_duration_ms = 1200 / WPM
| Browser | Support |
|---|---|
| Chrome 57+ | ✓ Full |
| Firefox 52+ | ✓ Full |
| Safari 11+ | ✓ Full |
| Edge 16+ | ✓ Full |
| Opera 44+ | ✓ Full |
Requirements:
wasm-pack build --target web --release --out-dir www/pkg
wasm-pack build --target web --dev --out-dir www/pkg
cargo test
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
Project Link: https://github.com/chronocoder/morsewave
MorseWave - Bridging the past and future of communication
Built with ❤️ using Rust and WebAssembly