2 unstable releases
0.2.0 | Jun 2, 2024 |
---|---|
0.1.0 | Jan 5, 2024 |
#380 in WebAssembly
185KB
1.5K
SLoC
rust-pipes 🦀💻
A remake of the classic Windows 98 Screensaver in Rust. Built to be resilient, configurable, and cross-platform (including for Web targets)
This project is still in development.
Web Development: https://pipes.faceftw.dev
Building/Testing
This project uses cargo for the standard Rust project build cycle. You can do the following tasks with cargo as follows:
Step | Command |
---|---|
Building | cargo build |
Running (No Args) | cargo run |
Running (w/ Args) | cargo run -- <args> |
Testing | cargo test |
The wasm
Target
This project also has a WASM target that is used for the web version, and is compiled differently from the standard version (i.e. lack of argument parsing).
cd ./web
npm install # If cloning for the first time
npx wasm-pack build ".." --target web --out-name web --out-dir web/pkg
npm run serve
Source/Reference Materials
I've used these resources to help build the project. Without them, this project would likely take forever to figure out how to complete.
- A lot of the original logic/design comes from the original source code for the screensaver in the Microsoft Windows NT 4.0 SDK found under
MSTOOLS\SAMPLES\OPENGL\SCRSAVE
- 1j01's JS implementation has also been instrumental to help with the translation of the original code written in "Microsoft C++ Dialect"
I'd also like to give a shoutout to these crates that I used that sped up the development of the project:
- asny/three-d is an excellent crate for doing Graphics/OpenGL programming in Rust. It provides a great foundation for development regardless of the abstraction level you want to work at with great documentation and examples to accompany it. The developer is also very responsive and even fixed a bug that affected this project!
Dependencies
~7–22MB
~279K SLoC