Skip to content

Commit a9a5424

Browse files
Hugh Isaacs IIHugh Isaacs II
authored andcommitted
Merge branch 'master' of https://github.com/HughIsaacs2/DatPart
2 parents 042c43c + 4ec1a48 commit a9a5424

1 file changed

Lines changed: 30 additions & 2 deletions

File tree

README.md

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,38 @@
11
# DatPart
2-
Proof of concept Dat site viewer for Chrome.
2+
Proof of concept [Dat](https://datproject.org/) site viewer for Chrome.
33

44
Sites can be loaded via the .dat_site. top-level domain.
55

66
For example you can load the Acrylic Style Dat site at http://1c7639eedaf8f7533f92e7c34f5a6d2b43645347836ab5e9f2489e89d3b08306.dat_site/
77

88
Oh also, Chrome's Omnibar treats all non-standard TLDs as searches, so you'll have to type the inital HTTP:// or put a slash at the end of the URL for it to load the site.
99

10-
(BitTorrent/WebTorrent support coming soon, it's already coded into the extension)
10+
(BitTorrent/WebTorrent support coming soon, it's already coded into the extension just not the server app. Also it'll load the same torrent sites as [PeerCloud](https://github.com/jhiesey/peercloud))
11+
12+
### How this works
13+
14+
Basically all this does is use the Chrome Extension WebRequest API and Proxy API to intercept any requests to the top level domain .dat_site. When that TLD is requested, Chrome uses the Proxy API to redirect the request to the local Electron server at http://127.0.0.1:9989/ and from there the server loads the Dat (using sparse mode) and returns the page or file that was requested.
15+
16+
### To-Do
17+
18+
* Firefox support (this is trouble as [the Firefox WebExtension Proxy API](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/proxy) is different).
19+
* Firefox for Android support.
20+
* Opera support.
21+
* Chrome OS support.
22+
* dat:// link support.
23+
* This'll require coming up with a way to simply parse Dat URLs in a regular web browser, as [parse-dat-url](https://github.com/pfrazee/parse-dat-url "parse-dat-url") doesn't work very well on the web (there's likely a fix that can be done with regular expressions but I suck at them so... yeah).
24+
* Provide the dat:// URL to the current site via the extension popup.
25+
* Have the extension automatically open the app in the background when a .dat_site is requested via the [Native Messaging API](https://developer.chrome.com/apps/nativeMessaging).
26+
* Polyfill [the Beaker Browser APIs](https://beakerbrowser.com/docs/apis/) (don't necessarily need all of them, just the ones to make sure the sites are viewable, e.g. Rotonde sites).
27+
* Notifications! For everything possible (optional of course).
28+
* Options! (A real options page)
29+
* Let the user set the port of the local server via options using the [Native Messaging API](https://developer.chrome.com/apps/nativeMessaging).
30+
* Use the [omnibox API](https://developer.chrome.com/extensions/omnibox) to let users just type the dat:// URL or the hash itself as a search to load the site.
31+
* Come up with a fallback for when the dat can't be found (Maybe a "Did you mean?" page or something).
32+
* Optional background functionality.
33+
* WebRTC support (for Chrome OS and providing a web proxy).
34+
* UDP support on Chrome OS.
35+
* Maybe support regular domain names [the way Beaker Browser does](https://beakerbrowser.com/2017/02/22/beaker-0-6-1.html), I don't know how this would be done via a browser extension but I feel like it might be possible (if well executed this could be useful for easing bandwidth/data use on certain sites).
36+
* Edge support? (Not possible yet, needs the Proxy API, if it ever gets it)
37+
* Safari support? (I'm unsure if this is possible)
38+
* Internet Explorer support? (I'm being ridiculous here, but again unsure if this is possible)

0 commit comments

Comments
 (0)