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-goandgo 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 downloadto get required modules - run
make bundleif you want rebundle static assets - run
make allor runmake buildif you dont want to recompile protobuff files - run
chatinbin
- each rooms can only send messages to rooms that have same
uuid,secretand 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)