* added protocol crate for the program, also removed unused crates * remove client code * removed example plugin * cleaned up foundation, added protocol crate to it * removed lua scripts * removed server ctl * migrated tp prost instead of protobuf crate * removed scripting code * moved protocol crate to foundation, created helper functions for encoding and decoding * Createde Cursive client for testing protocol stuff * added docs? * overriding server to remove actix, and simplify design * linting the server * moved network message handling into NetworkConnection struct * linting * cleaning up prints * writing better log messages * added better debug messages * purged all axtix modules, to be replaced with new components * ok, so i kind of got carried away here with the server and client. But essentially, the server has been rewritten to follow protobug up untill the point of connecting a client. the client can fetch info from the server, but cannot initiate a request to connect. I am weorkibng on both in tandem, and there will be losts of big commits :D * removing client stuff again, cause it's not going well * added client networking structs to the foundation crate * moved client stuff into foundation. * created Json structures * created protobuf structures * revamped the connection and protocolm structure to allow addition of other protocols * fixed issue with erronious request input from clients * removed select statements * Updated logging messages |
||
|---|---|---|
| .github/workflows | ||
| client | ||
| docs | ||
| foundation | ||
| protocol | ||
| server | ||
| .dockerignore | ||
| .gitignore | ||
| Cargo.toml | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
| rustfmt.toml | ||
README.md
Rust-chat-server
A Chat server writen in rust to allow communication between peers.
Features:
- implemented:
- json based API.
- Server introspection.
- Peer discovery.
- sending messages to connected clients.
- todo:
- Encryption to server.
- server to server meshing.
- asynchronous client managment instead of threaded approach.
Goals:
- Learn the rust programming lanaguage.
- Ownership: how that affects normal programming styles.
- Borrowing and references: how this affects shared state.
- Lifetimes: how this affects data retention and sharing.
- Learn how to create networked programs.
- Application level protocol: how to get two programs to communicate via TCP sockets.
- Socket handling: Discovering ways to handle multiple socket connections without affecting performance.
- Learn common encryption protocols.
- Adding support for encrypted sockets.
- Pros and cons of symetric and asymetric encryption.
- resolving common encryption flaws
Questions: For questions please add a issue with the question label. It will eventually be responded to