Please see my original forum post for more context.
Without a doubt in my mind, the most important website in the world is Wikipedia. The importance of having free access to educational material cannot be overstated. For many people around the world, it is a luxury that they can only dream of. In the SAFE Network I saw an opportunity to help bring this luxury to those unfortunate few. Since October of last year, I have been working away on developing my application
SAFE Wiki. SAFE Wiki is an Electron powered adaptation of the WebExtension
Kiwix-JS that can use the SAFE Network to both store and read ZIM files.
ZIM files are magical in that they provide an “offline storage [solution] for content coming from the Web.” Specifically, ZIM files can be used to store Wikimedia and StackExchange content.
Kiwix provide a number of tools/programs to easily browse these ZIM files. Kiwix-JS is just one of many projects that Kiwix maintain. If you wish to know more I highly suggest you visit their website.
SAFE-Wiki brings the functionality of the SAFE Network to Kiwix-JS. Once you use SAFE-Wiki to upload a ZIM file, it is publicly available to any other user of SAFE-Wiki. This means that we can easily publish decentralised ‘archives’ of popular websites like Wikipedia.
When you upload a ZIM file to the network, it get’s stored in what I am calling a ‘ZIM folder’ that lives in your _public container. When you create a ZIM folder, you specify a name. The name is important as it is the ‘name’ of the MD on the network and is how other users will find the ZIM files you upload. This ‘ZIM Folder’ is stored in your _public container against the key ‘zim’. To store and read ZIM files, a ‘ZIM folder’ is accessed through NFS emulation. For example… If you are Wikimedia, you might have a ‘ZIM folder’ called
Wikimedia. Within that MD you store a ZIM file called
Wikipedia. For another user to access Wikipedia, all they need to do is type in
Wikimedia as the target ‘ZIM Folder’, and enter
Wikipedia as the filename. It is as simple as that!
The main features of the application work. You can upload ZIM files and anyone can browse them! The functionality to delete a file that you have uploaded has also been implemented. I will be introducing further ‘house keeping’ functionality in due course. Please note there are issues with ZIM files that contain images… A fix for this is my top priority at the moment so I should have it sorted soon.
As some as you will remember, last year at University can be rather busy. The application doesn’t have nearly as much polish as I would like. Since the application is now useable and I have overcome many of the big technical challenges, I thought it best to share it with you all. Ugly bugs and all. My project is due near the end of March, so you can expect to see lots of activity over the coming weeks/months as I fix bugs and improve functionality. There is still much to be done! If circumstances allow it, I will continue to work on this project after I have finished my degree. I truly feel that SAFE-Wiki could be a useful tool to many people around the world.
I STRONGLY recommend that you use mock routing to test the application if you so desire. I have done very limited testing with the Alpha-2 test network and I don’t feel the application is fully ready to be used on the public network. Completely up to yourself though if you wish to live dangerously . You can download ZIM files from Kiwix (http://wiki.kiwix.org/wiki/Content), They have a vast array of different ZIM files for you to choose from. Please note that without any configuration of the SAFE Browser you have a file size “limit” of ~1GB, so please use the smaller files if you wish to avoid the trouble. If you are going to download ZIM files, please try the BitTorrent links first… Reduces load and cost on their end. I have been working with the SAFE Browser so far, not sure how things function with Peruse so please let me know how you get on if you go down that route. Development has been entirely on macOS, so if you have OS specific bugs then please let me know and I will have it fixed before I hand in my project to the Uni! As this is a final year project at University, I have to be careful about seeking help from outside sources. So if anyone submits any pull requests for features or things like that, please don’t be offended if I don’t do anything with them until after I have submitted my project/dissertation.
Please find the source here.
Full instructions on how to run the program are in the README, if you have any trouble then please don’t hesitate to ask. I did put the instructions through the ‘rubber ducky test’ but I still might have left some details out. Very excited to hear what you all think.
A ZIM file being uploaded.
Browsing Wikivoyage. Note there are issues with ZIM files that contain images, hence why this doesn’t look very pretty. Fix coming soon!
Wikispecies. This ZIM file has no images so it displays perfectly.