Skip to content

Commit

Permalink
Merge pull request #1 from p2plabsxyz/v1
Browse files Browse the repository at this point in the history
feat: Release v1.0.0-0 - Public Beta Launch
  • Loading branch information
akhileshthite authored Mar 1, 2025
2 parents 9db8ded + a688533 commit 9f9db8e
Show file tree
Hide file tree
Showing 74 changed files with 18,929 additions and 10,046 deletions.
Binary file removed .DS_Store
Binary file not shown.
47 changes: 47 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# https://github.com/AgregoreWeb/agregore-browser/blob/master/.github/workflows/build.yml

name: Build/release

on:
push:
## Run on tags starting with `v*`
tags:
- 'v*'

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
release:
continue-on-error: true
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]

steps:
- name: Install libarchive-tools for pacman build # Related https://github.com/electron-userland/electron-builder/issues/4181
if: startsWith(matrix.os, 'ubuntu')
run: sudo apt-get install libarchive-tools

- name: Check out Git repository
uses: actions/checkout@v3
with:
submodules: true

- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@v3
with:
node-version: 'lts/*'

- name: Non-tag specific build step
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
run: echo "This build was triggered without a tag."

- name: Build binaries with electron-builder
uses: coparse-inc/action-electron-builder@29a7606c7d726b5b0f4dc2f334026f58bea0e1bb # v1.6.0 but safer than a tag that can be changed
with:
max_attempts: 2
github_token: ${{ secrets.github_token }}
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
200 changes: 121 additions & 79 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,123 +5,165 @@
<h1 align="center">Peersky Browser</h1>

<div align="center">
<img src="https://img.shields.io/badge/Platform-electron.js-black.svg?style=flat-square" alt="platform">
<img src="https://img.shields.io/github/release-date-pre/p2plabsxyz/peersky-browser?color=green&style=flat-square" alt="Release" />
<img src="https://img.shields.io/badge/license-MIT-orange.svg?style=flat-square" alt="License">
</div><br>
<img src="https://img.shields.io/github/actions/workflow/status/p2plabsxyz/peersky-browser/build.yml" alt="GitHub Actions Workflow Status">
<img src="https://img.shields.io/badge/Platform-electron.js-black.svg" alt="platform">
<img src="https://img.shields.io/github/release-date-pre/p2plabsxyz/peersky-browser?color=green" alt="GitHub Pre-release" />
<!-- <img src="https://img.shields.io/github/v/release/p2plabsxyz/peersky-browser?color=green" alt="GitHub Release"> -->
<img src="https://img.shields.io/mastodon/follow/113323887574214930" alt="Mastodon Follow">
<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">
</div>

💻 [Download](https://github.com/p2plabsxyz/peersky-browser/releases/latest) | 🌐 [Website](https://peersky.p2plabs.xyz/)
💻 [Download](https://peersky.p2plabs.xyz/)

<div>
<img src="./peersky-demo.gif" />
</div>
## Roadmap

## 🛠 Development
- [x] Basic browser navigation:

- Install dependencies
- [x] Back
- [x] Forward
- [x] Reload
- [x] Browser protocol (peersky://)
- [x] Home page (peersky://home)
- [x] Search engine
- DuckDuckGo (default)
- Ecosia
- [ ] [Tabs?](https://github.com/p2plabsxyz/peersky-browser/issues/11)

```bash
npm install
```
- [x] IPFS protocol handler:

- Start the app
- [x] Run a local [Helia](https://helia.io/) node
- [x] `ipfs://` / `ipns://` native URLs support
- [x] Directory listings support
- [x] Native ENS domain resolution:
- [x] Resolve `.eth` domains directly to IPFS/IPNS content without centralized gateways (e.g., `ipfs://vitalik.eth`).
- [x] Local caching for resolved ENS content to enhance performance and reduce RPC calls.

```bash
npm start
```
- [x] Hypercore protocol handler:

- Build
After development of the browser, run the following command. This will create a `production` build.
- [x] Run a local [hyper](https://holepunch.to/) node
- [x] `hyper://` native URLs support

```bash
npm run build
# For Intel and M1 macs
```
- [x] Web3 protocol handler:

Now, the build folder will appear in the root directory.
- [x] Run a local [web3 protocol](https://docs.web3url.io/) node
- [x] Access on-chain websites.
- [x] Fetch data from smart contracts using auto, manual, and resource request resolve modes.
- [x] Query account balances or other data directly from smart contracts.

```bash
npm run build-all
# For macOS, Linux, and Windows
```
- [x] P2P Applications:

## 🚧 Roadmap
- [x] `peersky://p2p/chat/`
- Peer-to-peer messaging over Hyper
- [x] `peersky://p2p/upload/`
- Decentralized file storage
- [x] `peersky://p2p/editor/`
- Build and publish websites
- [x] `peersky://p2p/wiki/`
- Browse Wikipedia over IPFS
- [x] [reader.p2plabs.xyz](https://reader.distributed.press/)
- A p2p offline ActivityPub client for reading and following microblogs on the fediverse.

> Please note that the following roadmap list is in random order, and these items represent high-priority tasks.
- [x] Electron’s Auto-updater:

- [x] Browser navigation:
- [x] Download and install the latest release from Github automatically

- [x] Back
- [x] Forward
- [x] Context menu:

- [x] Back / Forward
- [x] Reload
- [x] Home page (peersky://home)
- [x] Inspect
- [x] Undo / Redo
- [x] Cut / Copy / Paste
- [x] Copy Link Address
- [x] Open Link in New Tab

- [x] Find in page:
- [x] Search for text within a document or web page

- [x] Window state persistence:
- [x] Save and restore open windows on app launch

- [x] Keyboard shortcuts:

- [x] New Window: `CommandOrControl+N`
- [x] Back: `CommandOrControl+[`
- [x] Forward: `CommandOrControl+]`
- [x] Reload: `CommandOrControl+R`
- [x] Find in Page: `CommandOrControl+F`
- [x] Open Dev Tools: `CommandOrControl+Shift+I`
- [x] Focus URL Bar: `CommandOrControl+L`
- [x] Minimize: `CommandOrControl+M`
- [x] Close: `CommandOrControl+W`
- [x] Toggle Full Screen: `F11`

- [ ] Settings (peersky://settings):

- [ ] Switch search engines
- [ ] Set custom home page wallpapers
- [ ] Hide/show the home page clock
- [ ] Change themes
- [ ] Clear browser cache

- [ ] Web extensions:
- [ ] Ability to add and manage extensions
- [ ] Default extensions
- [Ad-blocker](https://github.com/gorhill/uBlock)
- [DScan](https://github.com/p2plabsxyz/dscan)
- ..

- [x] IPFS protocol handler:
- [ ] History (peersky://history):

- [x] Run a local IPFS node
- [x] `ipfs://` / `ipns://` native URLs support
- [x] Directory listings support
- [ ] [Helia](https://github.com/ipfs/helia) integration
> JS-IPFS is deprecated: js-IPFS has been superseded by Helia
- [ ] Suggestions based on the browser history when typing in URL prompt

- [ ] Experiments:
- [ ] QR Code generator:

- [ ] `peersky://upload`
- Upload files / directories
- Publish blogs / websites
- [ ] `Peersky://analytics` ([peerDiscovery](https://github.com/ipfs/js-ipfs/blob/master/docs/core-api/DHT.md#ipfsdhtfindpeerpeerid-options))
- Fetch IPs from the DHT and count them as clicks, with regional sorting (visuals)
- [ ] `Peersky://chat` ([libp2p/webRTC](https://github.com/libp2p/js-libp2p-webrtc]))
- Chat with connected peers on the network
- [ ] Option to generate QR Code for every page in the URL prompt

- [ ] Auto-updater (electron’s [autoUpdater](https://www.electronjs.org/docs/latest/api/auto-updater)):
- [ ] Bookmarks (peersky://bookmarks):

- [ ] Download and install the latest release from Github automatically
- [ ] Option to add favourite pages in the nav bar (peersky://bookmarks)

- [ ] QR Code generator:
- [ ] Archive (peersky://archive):

- [ ] An option to generate QR Code for every page in the URL prompt
- [ ] List and showcase published content from `peersky://p2p/` apps for enhanced discoverability.
- [ ] Provide metadata (e.g., creation date, content type) to improve navigation and usability.
- [ ] Ability to download all the hashes of published data in a .json file.

- [ ] Context menu:
## Development

- [ ] Back / forward
- [ ] Reload
- [ ] Generate QR code
- [ ] Add to IPFS
### Install dependencies

- [ ] Browser history:
```bash
npm install
```

- [ ] peersky://history
- [ ] Suggestions based on the browser history when typing in URL prompt
### Start the app

- [ ] Bookmarks:
```bash
npm start
```

- [ ] An option to add favourite pages in the nav bar (peersky://bookmarks)
### Build
After development of the browser, run the following command. This will create a `production` build.

- [ ] Keyboard shortcuts:
```bash
npm run build
# For Intel and M1 macs
```

- [ ] New window
- [ ] Back / Forward
- [ ] Reload
- [ ] Find in page
- [ ] Developer tools
Now, the `dist` folder will appear in the root directory.

- [ ] Extensions:
- [ ] In-browser extensions
- [Ad-blocker](https://github.com/gorhill/uBlock)
- [DScan](https://github.com/p2plabsxyz/dscan)
- ..
- [ ] Load extensions from folders
```bash
npm run build-all
# For macOS, Linux, and Windows
```

## 📄 Contribute
## Contribute

- Thanks for your interest in contributing to Peersky Browser. There are many ways you can contribute to the project.
- To start, take a few minutes to read the "[contribution guide](https://github.com/p2plabsxyz/peersky-browser/blob/main/.github/CONTRIBUTING.md)".
- 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).

## ⚖️ License
## License

Peersky Browser is licensed under the [MIT License](https://github.com/p2plabsxyz/peersky-browser/blob/main/LICENSE).

<hr>
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>
Binary file added banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 9f9db8e

Please sign in to comment.