Enable CI/CD by adding .onedev-buildspec.yml
| .github/workflows | Loading last commit info... | |
| server | ||
| src | ||
| .gitignore | ||
| .gitmodules | ||
| LICENSE | ||
| README.md | ||
| docker-attach.sh | ||
| docker-compose.yaml | ||
| docker-shutdown.sh | ||
| docker-update-start.sh |
README.md
Blink
Chat application in gtk4, written purely in C++.
Note
If you want to use terminal interface for client and/or want static build, you can use the ncurses branch.
Windows
- See releases for windows build
Building on Windows
- Windows build is possible using MSYS2 UCRT64
- Run MSYS2 UCRT64 as administrator
- You will need to install following packages:
pacman -S git make unzip mingw-w64-ucrt-x86_64-gtkmm-4.0 mingw-w64-ucrt-x86_64-libsodium mingw-w64-ucrt-x86_64-toolchain- Hopefully, you will be able to build it with
make wincommand in src and consequentlymake install_winto install it
Linux
Dependencies
Shared
make,libsodium,g++with c++23 support
Client
unzipandgtkmm4for GUI
Server
dockeranddocker-composeoptionally for server
Client
Build
git clone https://github.com/Hikari03/Blink.git && \
cd Blink/src && \
make && \
make install
Usage
blink
or launch from your desktop environment as an app
- then follow instructions
- to exit in connected chat, type
/qand then enter
Screenshots

Server
- Uses Port : 6999
- If you want to change it you can do so in server/main.cpp and src/App.cpp
Use Docker
With scripts
You can get the docker-update-start.sh, docker-attach.sh and docker-shutdown.sh.
With them, you can control the server with ease.
docker-update-start.shwill automatically update the image if needed and start the serverdocker-attach.shwill attach you to server console. Usehelpto print available commands. When you want to exit console, useCTRL + P, CTRL + Q.docker-shutdown.shwill shutdown the container
Manually
- download the docker-compose.yml
docker compose up -dordocker-compose up -d- to control the server use
docker attach blink-server docker compose downordocker-compose down
From Source
Build
git clone https://github.com/Hikari03/Blink.git && \
cd Blink/server && \
make
Usage:
in Blink/server
./blink-server
Controls
helphelpqquit serverlistlist all connected clientskick <name>kick out client with nameipban <name>ban client with nameipunban <name>unban client with nameipbanslist all banned clients
Attributions
TODO
- better resource management
- better server terminal
- fix kicking out users
- sending only last n messages so everything is stable
- ability to see online users
- better syncing of chat when someone connects or leaves
- this is when new user connects and doesn't see the chat history or when someone leaves and the chat history is not updated
- fix server having unexpected behavior when closing server with clients connected
- implement code for graceful stop in docker
- transfer ncurses static build to librender that will make static library
- make communication encrypted
- remake client to use gtkmm4
- fix duplicate messages that show only sometimes
- port to windows
- make default theme (probably catppuccin)
- build catppuccin theme in makefile and not store it in repo
- make persistent storage for server
- make persistent storage for client
- fix ncurses branch client
- implement notice when client gets kicked out