This repository has been archived by the owner on Jul 21, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
bda8330
commit 52f570e
Showing
7 changed files
with
178 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# Void | ||
|
||
Welcome to Void, a decentralized, private, and secure | ||
messenger for the 21st century. | ||
|
||
![Void apps running on Android and Linux](./scr/preview.png) | ||
|
||
----- | ||
Alpha Warning: Void is alpha-quality software built on | ||
alpha-quality libraries. While it works most of the time, | ||
crashes and data loss are to be expected. | ||
|
||
Do not use for anything other than testing. | ||
|
||
------ | ||
|
||
Void aims to be a social network for the modern age. | ||
One that doesn't track you, lock you in, or make you | ||
the product. | ||
|
||
While that is the ultimate goal, right now Void is just | ||
a messenger. You can chat with peers as long as you | ||
know their identity public key. On mobile this is | ||
a `screamingvoid://peer/{64 char hex string}` URI | ||
that you can open and the app will pick it up. | ||
Handling custom URI's on desktop is a little trickier | ||
without installation, so the preview app does not | ||
currently do it. | ||
|
||
You can find the preview apps on the releases page. | ||
|
||
If you wish to see Void achieving it's goals and | ||
growing consider sponsoring me, the primary and for | ||
now, only, developer. Developing Void is very time consuming and there's lots of work to be done, as | ||
the stack Void is built around does not support | ||
environments outside of node.js, so just getting | ||
the app to run on mobile involves considerable amount | ||
of work and lots of native code. | ||
|
||
If you decide to become a sponsor you can see available | ||
options to support me in the sidebar. Currently you | ||
become a patron on Patreon for recurring donations or | ||
alternatively use DonorBox to support me. | ||
|
||
For more information about available features, known | ||
bugs, and things to come check individual packages in | ||
the source tree. | ||
|
||
Most packages in this monorepo are released under MIT | ||
license, and every package includes LICENSE file you | ||
can double check. | ||
|
||
Some packages may be missing readmes. Documenting | ||
things is important but time consuming, and at this | ||
stage in development requires many rewrites as things | ||
break and change often. I'll get to it eventually. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
The MIT License (MIT) | ||
|
||
Copyright (c) 2022 Tomas Ravinskas | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# Void App | ||
|
||
This the official/reference client for the Void network. It's built on React | ||
Native and uses async event based interface to communicate with the core. | ||
|
||
It's developed alongside the core and aims to implement every feature available | ||
in the core. It runs on most modern platforms, however I can only test Linux | ||
(Ubuntu LTS) and Android (10). It should run on Windows and Mac as is, but iOS | ||
will probably require minor adjustments to the source to behave correctly. | ||
|
||
Some things like theming are haphazardly thrown together and will change as the | ||
code matures. | ||
|
||
Network changes are not currently handled. This works mostly ok on desktop, | ||
but on mobile switching from Wi-Fi to mobile data (or the reverse) is likely | ||
to result in hard crash. Even if the app doesn't crash, the rebinding of | ||
network interface DOES NOT happen automatically yet, so you'll need to log out | ||
and log back in for the client to continue to function. | ||
|
||
Another thing that is icky on mobile is the battery optimization handling. | ||
I'm looking for a way to opt out of it, but as it is the app might randomly | ||
be killed by the OS without warning. Always check for the "Connected to Void | ||
network" notification. | ||
|
||
## Building | ||
|
||
### Dev | ||
|
||
You need 2 terminals to run the dev client. | ||
|
||
In first terminal run `yarn web` for the desktop version or `npx react-native start` | ||
for the mobile version. | ||
|
||
In the second terminal run `yarn tauri dev` for the desktop version or | ||
`npx react-native (run-android|run-ios)` for the mobile version. | ||
|
||
### Production | ||
|
||
To build the production version run `yarn sidecar && yarn tauri build` for | ||
the desktop version or `cd android && ./gradlew assembleRelease` for the | ||
mobile version. | ||
|
||
I don't actually know how to build the iOS version as I have no Apple compatible | ||
dev environment. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
The MIT License (MIT) | ||
|
||
Copyright (c) 2022 Tomas Ravinskas | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in | ||
all copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
THE SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Void (Core library) | ||
|
||
This is the official/reference library for connecting to the Void network. | ||
As it is P2P network, every instance is both a client and a server. | ||
As such the library needs to run in the background continuously to function | ||
correctly. | ||
|
||
As can be seen in the reference app this is best achieved with library code | ||
running in separate (service) process and communicating with it asynchronously. | ||
|
||
The library is built around Hypercore 10 (alpha) and Hyperswarm 5 (alpha). | ||
The switch to Hyperswarm 6 will happen as soon as libudx bindings are complete | ||
for the mobile ecosystem. The library uses libsodium for additional crypto | ||
not provided by hyper-libraries. This is to keep dependencies minimal as | ||
hyper-libraries also depend on libsodium. | ||
|
||
Currently only chat (1-to-1 and group) is implemented. True to it's P2P nature, | ||
group chat is actually more reliable, as even peers that are offline can propagate | ||
updates as long as at least 1 online peer has seen those updates. | ||
|
||
As I work out the design of the network, I will eventually post a DESIGN doc | ||
here specifying how peers interact with the network and each other. This is | ||
far from finished and I'm actively working on it, so it will take some time. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.