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.