A Cross-Platform, Multi-Communication, Serverless (Decentralized) App.
Protonet is a communication app, based on modern techniques, intended to be a secure way of interaction, whether Text Messaging or Voice Calling or Video Sharing or Purchasing Crypto Currencies or Using Crypto Currencies for shopping, should be reliable and secure.
The app is in very early stage(alpha) and not recommended for production. It's also not well documented. You are welcome to make any changes/improvement in this repo. This repo is for anyone interested!
Refer Protonet
You are free to use any code from this app. You are allowed to make pull request, etc as well. The intent of this app was to help open source community and receive help from open source community and anyone interested and also to give a glimpse of how powerful modern techonlogies. For third party libraries, please refer to their respective licenses. Please also refer to License file.
Gioui a modern cross-platform UI Framework in Go language.
Libp2p a modern cross-platform Networking Framework / Libraries in Go
language.
There are other libraries used as well. Please refer to source code for that, especially go.mod files.
The app uses many third party open source libraries without which this project wouldn't be possible. For Gui, it mainly
uses Gioui
For networking, it mainly uses Libp2p
Windows, Mac, Linux, Android, iOS, Modern Browsers
The app is mainly tried on Linux,Android and Modern Browsers, for other platforms you may need to figure out a way.
You need to install Go for your platform
From commandline/terminal, cd into the root directory of this project, then make sure all the dependencies are
installed. Run go get ./...
, followed by go run .
Make sure AndroidStudio and AndroidSdk is installed
Run the following command inside the root directory of the project from terminal/commandline
gogio -target android .
The above command will generate protonet.live.apk, then
adb devices
adb -s deviceIdFromAbove install protonet.live.apk
- Error in ... #include<jni.h> No such file or directory Resolution
CGO_CFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux" go get ./...
Solution
https://developer.android.com/studio/command-line/apksigner
gogio -buildmode archive -x -work -appid live.protonet -minsdk 22 -version 3 -target android
then delete protonet.apk, followed by
/pathToZipAlign/zipalign -f 4 /tmpPathFromAbove/app.ap_ protonet.apk
/pathToApkSigner/apksigner sign --ks yourkey.jks protonet.live.apk
go run gioui.org/cmd/gogio -target js . go get github.com/shurcooL/goexec goexec 'http.ListenAndServe(":8080", http.FileServer(http.Dir("protonet.live")))'
https://github.com/golang/go/wiki/Modules#can-i-work-entirely-outside-of-vcs-on-my-local-filesystem https://levelup.gitconnected.com/best-practices-for-webassembly-using-golang-1-15-8dfa439827b8 https://github.com/golang/go/blob/master/misc/wasm/wasm_exec.html https://gist.github.com/SteveBate/042960baa7a4795c3565