Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FilePizza v2 🍕 #134

Open
wants to merge 44 commits into
base: master
Choose a base branch
from
Open

FilePizza v2 🍕 #134

wants to merge 44 commits into from

Conversation

kern
Copy link
Owner

@kern kern commented Feb 12, 2021

Screen Shot 2021-02-11 at 6 00 53 PM

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:

  • 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

  1. I hope to have a few more weeks to test things locally, addressing the above bullet points.
  2. I'll shift focus toward ensuring cross-browser compatibility, especially on mobile browsers. Would love your help here when we reach this stage.
  3. 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

@lil5
Copy link
Contributor

lil5 commented Jun 22, 2021

This looks great! I am very exited for darkmode 🌒

@Unkn0wnCreator
Copy link

I have a little question, is it dead? Because i love this project and was excited about the 2.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants