p2p-chat
A serverless p2p chat app written in go with fyne for gui , grpc for networking and sqlite for database
prerequisites
- gcc
-
protoc & go plugins (if you want to compile pb files):
- install protocol buffer compiler link
- install protoc-gen-go and and protoc-gen-go-grpc by running
go install google.golang.org/protobuf/cmd/protoc-gen-go
and go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
- have protoc and GOPATH in your PATH env
-
fyne cli only required for bundling data
- install fyne by running
go install fyne.io/fyne/v2/cmd/fyne@latest
building
- clone project and get get into directory
git clone https://github.com/rzaf/p2p-chat.git && cd p2p-chat
- run
go mod download
to get required modules
- run
make bundle
if you want rebundle static assets
- run
make all
or run make build
if you dont want to recompile protobuff files
- run
chat
in bin
usage
- each rooms can only send messages to rooms that have same
uuid
,secret
and their ip
,port
,user uuid
- each user has a public username that can be changed in seting
features
- private chat rooms
- serverless app
- encrypted messaging
- light/dark mode
- public username
todos
- public chat rooms
- storing caht messages
- norifying seen messages
- profile photo
- sending media messages (photo,video,music)