ZeroMux is a file sharing toolkit and site builder for ZeroNet. ZeroMux is the software that will make ZeroNet into a file sharing and media streaming network. It pushes ZeroNet's limit of handling big files by breaking big files into small chunks. Video files are converted into streaming friendly format and piped into HTML media elements, using Media Source Extensions API and a built-in MP4 multiplexer.
-
Download this repo, or if you prefer, get the pack at ZeroMux Blog on ZeroNet
-
Unpack and run
wizard.py
-
After you made changes to your file list, put the
loader
folder onto your site, or if you prefer, simply make a symbolic link:ZeroMux/loader -> data/1YourSite/loader
-
Sign and publish. Tell your friends to come visit your site.
-
For instructions of how to configure your ZeroNet site, refer to ZeroMux Docs on ZeroNet and read more about it.
- Upload a properly encoded, non-fragmented MP4 file.
- Hack the source code of example-player.html.
- See it working!
Because of how ZeroNet works, every file on your site is public, which means that everyone can see your files. You should never use ZeroMux as a personal data backup software. ZeroMux will not encrypt any data for you.
You should never rely on ZeroMux to keep your data permanent. Although ZeroMux will not damage your files, there is no guarantee that every part of your files is distributed to fast and reliable peers.
ZeroMux does not strip metadata.
Both ZeroMux and ZeroNet use bleeding edge features of JavaScript. Browser implementations of these new features have bugs.
Loading a cross-origin Web Worker script is not allowed in major browsers. I believe this is not the correct model regarding both usability and security. On Stack Overflow, there are many questions about loading cross-origin Web Workers, but few of them has a definite answer.
MDN wiki editors wrote about inline Web Workers, but there is a disagreement on whether a Blob URL is allowed to load a Web Worker. Google Chrome refuses to load a Blob URL Web Worker defined in an HTTPS page. Due to such disagreement, ZeroMux may not work on HTTPS-enabled ZeroNet gateways.
Firefox renders Remote XUL Error when it tries to pop up a dialog from an iframe sandbox. This Firefox bug will be fixed in Firefox 52. ZeroMux still works in Firefox, except Firefox assigns random names to files.
When user holds left key and drags on the progress bar of a video element, Firefox prints uncaught exception: undefined (unknown)
to console. However, ZeroMux still seems to work. Such uncaught exception can also be seem on YouTube. A comment on Stack Overflow suggests such exception is due to the error in Firefox internals. I assume it is a Firefox bug.
Google Chrome refuses to load any Media Source URL in an iframe sandbox. This Chromium bug was reported in 2014, but remains unfixed for more than 2 years. WebTorrent is also affected by this bug. Video streaming does not work in Google Chrome unless this bug is fixed.
You can make ZeroMux project better by simply:
- Testing ZeroMux on your computer, and suggesting ways to improve. File an Issue
- Talking to me privately about your experience.
You can also help the ZeroNet community by seeding the files you like from some file sharing Zites.
You can help us test I2P support, so that we can have even more seeders in the future.
There are some browser bugs which ZeroNet developers are unable to fix. You can help us persuade Chromium developers that blocking blob:null/
in an iframe sandbox should be considered as a bug, not a feature. This long standing bug prevents MSE APIs from working properly in an iframe sandbox.
You can also donate to ZeroNet and help keep both projects alive.