Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rzaf/p2p-chat
p2p chat app in go
https://github.com/rzaf/p2p-chat
chat chat-application chatapp encrypted encryption fyne go golang grpc grpc-go gui p2p p2p-chat
Last synced: 3 months ago
JSON representation
p2p chat app in go
- Host: GitHub
- URL: https://github.com/rzaf/p2p-chat
- Owner: rzaf
- License: mit
- Created: 2024-08-20T11:34:46.000Z (4 months ago)
- Default Branch: master
- Last Pushed: 2024-08-20T12:23:18.000Z (4 months ago)
- Last Synced: 2024-09-29T10:47:25.322Z (3 months ago)
- Topics: chat, chat-application, chatapp, encrypted, encryption, fyne, go, golang, grpc, grpc-go, gui, p2p, p2p-chat
- Language: Go
- Homepage:
- Size: 70.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# p2p-chat
A serverless p2p chat app written in go with [***fyne***](https://github.com/fyne-io/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](https://grpc.io/docs/protoc-installation/)
- 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)