A serverless p2p chat app written in go with fyne for gui , grpc for networking and sqlite for database
- 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
andgo 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
- install fyne by running
- 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 runmake build
if you dont want to recompile protobuff files - run
chat
inbin
- each rooms can only send messages to rooms that have same
uuid
,secret
and have each othersip
,port
,user uuid
- each user has a public username that can be changed in seting
- private and public chat rooms
- serverless app
- encrypted messaging
- light/dark mode
- public username
- storing caht messages
- notifying seen messages
- profile photo
- sending media messages (photo,video,music)