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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

FilePizza v2 馃崟 #134

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

FilePizza v2 馃崟 #134

wants to merge 20 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:

  • Integration with coturn username/password authentication for self-hosted TURN servers
  • Support for custom/third-party STUN/TURN servers (like Twilio)
  • Documentation of the file transfer protocol
  • Better error case handling on network connectivity loss
  • Minor UX / styling improvements (cross-browser testing, dark mode, full-screen drop zone, file selector, footer styling, etc.)
  • End-to-end testing, snapshot tests

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.

None yet

3 participants