|
5 | 5 | <h1 align="center">Peersky Browser</h1> |
6 | 6 |
|
7 | 7 | <div align="center"> |
8 | | - <img src="https://img.shields.io/badge/Platform-electron.js-black.svg?style=flat-square" alt="platform"> |
9 | | - <img src="https://img.shields.io/github/release-date-pre/p2plabsxyz/peersky-browser?color=green&style=flat-square" alt="Release" /> |
10 | | - <img src="https://img.shields.io/badge/license-MIT-orange.svg?style=flat-square" alt="License"> |
11 | | -</div><br> |
| 8 | + <img src="https://img.shields.io/github/actions/workflow/status/p2plabsxyz/peersky-browser/build.yml" alt="GitHub Actions Workflow Status"> |
| 9 | + <img src="https://img.shields.io/badge/Platform-electron.js-black.svg" alt="platform"> |
| 10 | + <img src="https://img.shields.io/github/release-date-pre/p2plabsxyz/peersky-browser?color=green" alt="GitHub Pre-release" /> |
| 11 | + <!-- <img src="https://img.shields.io/github/v/release/p2plabsxyz/peersky-browser?color=green" alt="GitHub Release"> --> |
| 12 | + <img src="https://img.shields.io/mastodon/follow/113323887574214930" alt="Mastodon Follow"> |
| 13 | + <img src="./banner.png" alt="Peersky, displaying multiple overlapping windows. The foreground window shows a search bar with DuckDuckGo, while the background contains a Wikipedia page on ipns:// about Earth and a private hyper:// chat. The central window features a scenic forest image with sunlight filtering through tall trees, and a clock"> |
| 14 | +</div> |
12 | 15 |
|
13 | | -💻 [Download](https://github.com/p2plabsxyz/peersky-browser/releases/latest) | 🌐 [Website](https://peersky.p2plabs.xyz/) |
| 16 | +💻 [Download](https://peersky.p2plabs.xyz/) |
14 | 17 |
|
15 | | -<div> |
16 | | - <img src="./peersky-demo.gif" /> |
17 | | -</div> |
| 18 | +## Roadmap |
18 | 19 |
|
19 | | -## 🛠 Development |
| 20 | +- [x] Basic browser navigation: |
20 | 21 |
|
21 | | -- Install dependencies |
| 22 | + - [x] Back |
| 23 | + - [x] Forward |
| 24 | + - [x] Reload |
| 25 | + - [x] Browser protocol (peersky://) |
| 26 | + - [x] Home page (peersky://home) |
| 27 | + - [x] Search engine |
| 28 | + - DuckDuckGo (default) |
| 29 | + - Ecosia |
| 30 | + - [ ] [Tabs?](https://github.com/p2plabsxyz/peersky-browser/issues/11) |
22 | 31 |
|
23 | | -```bash |
24 | | -npm install |
25 | | -``` |
| 32 | +- [x] IPFS protocol handler: |
26 | 33 |
|
27 | | -- Start the app |
| 34 | + - [x] Run a local [Helia](https://helia.io/) node |
| 35 | + - [x] `ipfs://` / `ipns://` native URLs support |
| 36 | + - [x] Directory listings support |
| 37 | + - [x] Native ENS domain resolution: |
| 38 | + - [x] Resolve `.eth` domains directly to IPFS/IPNS content without centralized gateways (e.g., `ipfs://vitalik.eth`). |
| 39 | + - [x] Local caching for resolved ENS content to enhance performance and reduce RPC calls. |
28 | 40 |
|
29 | | -```bash |
30 | | -npm start |
31 | | -``` |
| 41 | +- [x] Hypercore protocol handler: |
32 | 42 |
|
33 | | -- Build |
34 | | - After development of the browser, run the following command. This will create a `production` build. |
| 43 | + - [x] Run a local [hyper](https://holepunch.to/) node |
| 44 | + - [x] `hyper://` native URLs support |
35 | 45 |
|
36 | | -```bash |
37 | | -npm run build |
38 | | -# For Intel and M1 macs |
39 | | -``` |
| 46 | +- [x] Web3 protocol handler: |
40 | 47 |
|
41 | | -Now, the build folder will appear in the root directory. |
| 48 | + - [x] Run a local [web3 protocol](https://docs.web3url.io/) node |
| 49 | + - [x] Access on-chain websites. |
| 50 | + - [x] Fetch data from smart contracts using auto, manual, and resource request resolve modes. |
| 51 | + - [x] Query account balances or other data directly from smart contracts. |
42 | 52 |
|
43 | | -```bash |
44 | | -npm run build-all |
45 | | -# For macOS, Linux, and Windows |
46 | | -``` |
| 53 | +- [x] P2P Applications: |
47 | 54 |
|
48 | | -## 🚧 Roadmap |
| 55 | + - [x] `peersky://p2p/chat/` |
| 56 | + - Peer-to-peer messaging over Hyper |
| 57 | + - [x] `peersky://p2p/upload/` |
| 58 | + - Decentralized file storage |
| 59 | + - [x] `peersky://p2p/editor/` |
| 60 | + - Build and publish websites |
| 61 | + - [x] `peersky://p2p/wiki/` |
| 62 | + - Browse Wikipedia over IPFS |
| 63 | + - [x] [reader.p2plabs.xyz](https://reader.distributed.press/) |
| 64 | + - A p2p offline ActivityPub client for reading and following microblogs on the fediverse. |
49 | 65 |
|
50 | | -> Please note that the following roadmap list is in random order, and these items represent high-priority tasks. |
| 66 | +- [x] Electron’s Auto-updater: |
51 | 67 |
|
52 | | -- [x] Browser navigation: |
| 68 | + - [x] Download and install the latest release from Github automatically |
53 | 69 |
|
54 | | - - [x] Back |
55 | | - - [x] Forward |
| 70 | +- [x] Context menu: |
| 71 | + |
| 72 | + - [x] Back / Forward |
56 | 73 | - [x] Reload |
57 | | - - [x] Home page (peersky://home) |
| 74 | + - [x] Inspect |
| 75 | + - [x] Undo / Redo |
| 76 | + - [x] Cut / Copy / Paste |
| 77 | + - [x] Copy Link Address |
| 78 | + - [x] Open Link in New Tab |
| 79 | + |
| 80 | +- [x] Find in page: |
| 81 | + - [x] Search for text within a document or web page |
| 82 | + |
| 83 | +- [x] Window state persistence: |
| 84 | + - [x] Save and restore open windows on app launch |
| 85 | + |
| 86 | +- [x] Keyboard shortcuts: |
| 87 | + |
| 88 | + - [x] New Window: `CommandOrControl+N` |
| 89 | + - [x] Back: `CommandOrControl+[` |
| 90 | + - [x] Forward: `CommandOrControl+]` |
| 91 | + - [x] Reload: `CommandOrControl+R` |
| 92 | + - [x] Find in Page: `CommandOrControl+F` |
| 93 | + - [x] Open Dev Tools: `CommandOrControl+Shift+I` |
| 94 | + - [x] Focus URL Bar: `CommandOrControl+L` |
| 95 | + - [x] Minimize: `CommandOrControl+M` |
| 96 | + - [x] Close: `CommandOrControl+W` |
| 97 | + - [x] Toggle Full Screen: `F11` |
| 98 | + |
| 99 | +- [ ] Settings (peersky://settings): |
| 100 | + |
| 101 | + - [ ] Switch search engines |
| 102 | + - [ ] Set custom home page wallpapers |
| 103 | + - [ ] Hide/show the home page clock |
| 104 | + - [ ] Change themes |
| 105 | + - [ ] Clear browser cache |
| 106 | + |
| 107 | +- [ ] Web extensions: |
| 108 | + - [ ] Ability to add and manage extensions |
| 109 | + - [ ] Default extensions |
| 110 | + - [Ad-blocker](https://github.com/gorhill/uBlock) |
| 111 | + - [DScan](https://github.com/p2plabsxyz/dscan) |
| 112 | + - .. |
58 | 113 |
|
59 | | -- [x] IPFS protocol handler: |
| 114 | +- [ ] History (peersky://history): |
60 | 115 |
|
61 | | - - [x] Run a local IPFS node |
62 | | - - [x] `ipfs://` / `ipns://` native URLs support |
63 | | - - [x] Directory listings support |
64 | | - - [ ] [Helia](https://github.com/ipfs/helia) integration |
65 | | - > JS-IPFS is deprecated: js-IPFS has been superseded by Helia |
| 116 | + - [ ] Suggestions based on the browser history when typing in URL prompt |
66 | 117 |
|
67 | | -- [ ] Experiments: |
| 118 | +- [ ] QR Code generator: |
68 | 119 |
|
69 | | - - [ ] `peersky://upload` |
70 | | - - Upload files / directories |
71 | | - - Publish blogs / websites |
72 | | - - [ ] `Peersky://analytics` ([peerDiscovery](https://github.com/ipfs/js-ipfs/blob/master/docs/core-api/DHT.md#ipfsdhtfindpeerpeerid-options)) |
73 | | - - Fetch IPs from the DHT and count them as clicks, with regional sorting (visuals) |
74 | | - - [ ] `Peersky://chat` ([libp2p/webRTC](https://github.com/libp2p/js-libp2p-webrtc])) |
75 | | - - Chat with connected peers on the network |
| 120 | + - [ ] Option to generate QR Code for every page in the URL prompt |
76 | 121 |
|
77 | | -- [ ] Auto-updater (electron’s [autoUpdater](https://www.electronjs.org/docs/latest/api/auto-updater)): |
| 122 | +- [ ] Bookmarks (peersky://bookmarks): |
78 | 123 |
|
79 | | - - [ ] Download and install the latest release from Github automatically |
| 124 | + - [ ] Option to add favourite pages in the nav bar (peersky://bookmarks) |
80 | 125 |
|
81 | | -- [ ] QR Code generator: |
| 126 | +- [ ] Archive (peersky://archive): |
82 | 127 |
|
83 | | - - [ ] An option to generate QR Code for every page in the URL prompt |
| 128 | + - [ ] List and showcase published content from `peersky://p2p/` apps for enhanced discoverability. |
| 129 | + - [ ] Provide metadata (e.g., creation date, content type) to improve navigation and usability. |
| 130 | + - [ ] Ability to download all the hashes of published data in a .json file. |
84 | 131 |
|
85 | | -- [ ] Context menu: |
| 132 | +## Development |
86 | 133 |
|
87 | | - - [ ] Back / forward |
88 | | - - [ ] Reload |
89 | | - - [ ] Generate QR code |
90 | | - - [ ] Add to IPFS |
| 134 | +### Install dependencies |
91 | 135 |
|
92 | | -- [ ] Browser history: |
| 136 | +```bash |
| 137 | +npm install |
| 138 | +``` |
93 | 139 |
|
94 | | - - [ ] peersky://history |
95 | | - - [ ] Suggestions based on the browser history when typing in URL prompt |
| 140 | +### Start the app |
96 | 141 |
|
97 | | -- [ ] Bookmarks: |
| 142 | +```bash |
| 143 | +npm start |
| 144 | +``` |
98 | 145 |
|
99 | | - - [ ] An option to add favourite pages in the nav bar (peersky://bookmarks) |
| 146 | +### Build |
| 147 | + After development of the browser, run the following command. This will create a `production` build. |
100 | 148 |
|
101 | | -- [ ] Keyboard shortcuts: |
| 149 | +```bash |
| 150 | +npm run build |
| 151 | +# For Intel and M1 macs |
| 152 | +``` |
102 | 153 |
|
103 | | - - [ ] New window |
104 | | - - [ ] Back / Forward |
105 | | - - [ ] Reload |
106 | | - - [ ] Find in page |
107 | | - - [ ] Developer tools |
| 154 | +Now, the `dist` folder will appear in the root directory. |
108 | 155 |
|
109 | | -- [ ] Extensions: |
110 | | - - [ ] In-browser extensions |
111 | | - - [Ad-blocker](https://github.com/gorhill/uBlock) |
112 | | - - [DScan](https://github.com/p2plabsxyz/dscan) |
113 | | - - .. |
114 | | - - [ ] Load extensions from folders |
| 156 | +```bash |
| 157 | +npm run build-all |
| 158 | +# For macOS, Linux, and Windows |
| 159 | +``` |
115 | 160 |
|
116 | | -## 📄 Contribute |
| 161 | +## Contribute |
117 | 162 |
|
118 | 163 | - Thanks for your interest in contributing to Peersky Browser. There are many ways you can contribute to the project. |
119 | 164 | - To start, take a few minutes to read the "[contribution guide](https://github.com/p2plabsxyz/peersky-browser/blob/main/.github/CONTRIBUTING.md)". |
120 | 165 | - We look forward to your [pull requests](https://github.com/p2plabsxyz/peersky-browser/pulls) and / or involvement in our [issues page](https://github.com/p2plabsxyz/peersky-browser/issues). |
121 | 166 |
|
122 | | -## ⚖️ License |
| 167 | +## License |
123 | 168 |
|
124 | 169 | Peersky Browser is licensed under the [MIT License](https://github.com/p2plabsxyz/peersky-browser/blob/main/LICENSE). |
125 | | - |
126 | | -<hr> |
127 | | -Don't forget to leave a star ⭐️ ~ <a href="https://twitter.com/PeerskyBrowser" target="_blank"><img src="https://img.shields.io/twitter/follow/PeerskyBrowser?style=social" alt="twitter" /></a> |
|
0 commit comments