Go to file
Michael Bailey 313b115537
Made other changes to GRPC implementation to clean it up (#23)
* 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
2024-09-09 17:48:09 +01:00
.github/workflows Update rust master merge action workflow 2024-09-09 17:44:10 +01:00
client Grpc-manager (#22) 2024-05-30 20:42:42 +01:00
docs Grpc-manager (#22) 2024-05-30 20:42:42 +01:00
foundation Grpc-manager (#22) 2024-05-30 20:42:42 +01:00
protocol Grpc-manager (#22) 2024-05-30 20:42:42 +01:00
server Made other changes to GRPC implementation to clean it up (#23) 2024-09-09 17:48:09 +01:00
.dockerignore merge develop into master (#20) 2023-12-01 21:48:28 +00:00
.gitignore merge develop into master (#20) 2023-12-01 21:48:28 +00:00
Cargo.toml Grpc-manager (#22) 2024-05-30 20:42:42 +01:00
Dockerfile merge develop into master (#20) 2023-12-01 21:48:28 +00:00
LICENSE Update LICENSE 2021-02-08 21:12:10 +00:00
README.md Update README.md (#16) 2021-08-03 21:54:04 +01:00
rustfmt.toml merge develop into master (#20) 2023-12-01 21:48:28 +00:00

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