This is a ground-up rewrite for FilePizza that fixes many of the long-standing issues, modernizes the stack, and adds a host of new features. I'd say that it's about 95% of the way toward feature-parity already.
New features
Add passwords to file transfers to guard against unwanted downloads
Multiple files can be uploaded at once, downloader gets a zip
Uploads and downloads of very large files work without issues on most browsers thanks to StreamSaver
Uploaders see progress bar indicators and browser information about downloaders
Major technical updates
No more WebTorrent, transfers happen over "raw" WebRTC w/ peer.js for discovery
This fixes the slow client handshakes / DHT discovery that occurs with FilePizza v1.
Rewrite of the server using Next.js + TypeScript
Uses React hooks for all client-side logic (no more old-school Flux, crazy how quickly things change!)
Uses Redis as a temporary store for handshake information
Server has no knowledge of file metadata (name, size, etc.)
What's left:
[x] Minor UX / styling improvements (cross-browser testing, dark mode, full-screen drop zone, file selector, footer styling, etc.)
[ ] Migrate off peerjs to raw WebRTC
[ ] Integration with coturn username/password authentication for self-hosted TURN servers
[ ] Support for custom/third-party STUN/TURN servers (like Twilio)
[ ] Better error case handling on network connectivity loss
[ ] End-to-end testing, snapshot tests
[ ] T&S measures
[ ] Documentation of the file transfer protocol
Timeline
I hope to have a few more weeks to test things locally, addressing the above bullet points.
I'll shift focus toward ensuring cross-browser compatibility, especially on mobile browsers. Would love your help here when we reach this stage.
I'll mint the release and push it to my production instance.
Excited for this much-needed update!
Note: my apologies for radio silence here the past few months. This project was something I built back in college and just haven't given enough love to over the years. I hope that with this update, the project will be in a much better state, and allow others to participate more actively in development. As I'm currently working on this rewrite, I won't be accepting other issues/PRs
This is a ground-up rewrite for FilePizza that fixes many of the long-standing issues, modernizes the stack, and adds a host of new features. I'd say that it's about 95% of the way toward feature-parity already.
New features
Major technical updates
What's left:
Timeline
Excited for this much-needed update!
Note: my apologies for radio silence here the past few months. This project was something I built back in college and just haven't given enough love to over the years. I hope that with this update, the project will be in a much better state, and allow others to participate more actively in development. As I'm currently working on this rewrite, I won't be accepting other issues/PRs