Commit Graph

6 Commits

Author SHA1 Message Date
Michael Bailey bf80015145
Updated github action files to better complete CI tasks. (#24)
Updated Dockerfile to build a more correct,
2024-09-09 20:36:50 +01:00
Michael Bailey b8c83e7853
Update create-docker-image.yml 2024-09-09 17:53:26 +01:00
Michael Bailey 25582d2e55
Update rust.yml 2024-09-09 17:51:49 +01:00
Michael Bailey c1e4a22099
Update rust master merge action workflow 2024-09-09 17:44:10 +01:00
michael bailey ddb886df03
merge develop into master (#20)
* adding user update support

* Adding public key storage

* replaced duplicate fields

* changed messaegs to include a type property

* added encryption example

* Moved threads to tokio async

* Moved threads to tokio async

* Created global message support

* created basic ui that counts

* Created connection abstraction

This abstracts a TcpStream await to use any serialisable types.

* exposed server as lib

+created lib output for server
+ added extra dependencies
+ added functions to retrieve the port of a server

* updated connection

+ added manager trait
+ updated connection to use more idomatic rust code converted enums to Strigns rather that &str
+

* added network Manager

tl;dr, as the title says

* Update network_manager.rs

Converted over to new messaging system.

* meant to add this earlier

* Right bare with me...

This doesnt work for now but i have a system that works.

After this commit i will be resuming the smaller changes.

I needed to do this to find a new approach.

God save my mind.

* Impl IManager for ClientManager

* Added client manager tests

* Stripped server of functinoality

This is temporary whilst the client manager is being tested.

* Update client_manager.rs

swapped lock type for tokio lock

* Update client_manager.rs

- Added type arguments to Client manager
- deprecated start method

* Update client_manager.rs

- implemented handle channel method from old start method.
- added notes to possible issues.

* Update client_manager.rs

+ updated lifetime bounds.

* Update client_manager.rs

+ created function to get the number of connected clients

* Update client_manager.rs

+ created function to add/remove clients to the client manager.

* Update server.rs

- refactored server to simplify message passing

* Update client.rs

meant to add this earlier

* Update messages.rs

formatting

* moved some messages around

* Update server.rs

- removed redundant messages

* Update client_manager.rs

bunch more changes

yes i know i'm rubbish at this plz don't say anything :(

* Added Message Broadcasting functionality

* cleared up warnings

* Update client.rs

- removed redundant fields

* Update client.rs

added global broadcasting

* Added the ability to disconnect from the server

* Update network_manager.rs

this protects the network manager from crashing when a erroneous message is sent

* implemented message sending between users

* Update client.rs

added tokio, to protect client connections.

* Added Lua dependency

* Made server, Lua scriptable.

* added basic scripting abilities to the server

* Update client.rs

fixed stray connection

* made client Lua scriptable

* Made client manager Lua scriptable

* Adde fields to server to get client manager

* Updated testing script

* added client indexing to client manager

* added basic callback support to ClientManager

* moved Lua structs to separate module

* added arbitrary self types

* Created example plugin crate

* Added libloading dependency

* Created plugin trait and create function type

* created basic PluginManager

* Added plugin manager to server

* added modules

* Updated example plugin

* added plugin manager to server

* modified plugin module visibility

* updated example plugin

* updated plagin interface

* created plugin interface

* updated plugin init process

* updated example plugin

* cleaned up lib folder

* fixed cloning issues with plugin manager

* updated plugin trait implementation

* updated module definitions

* upadted rust fmt rules for imports

* fixoing formatting and ther errors. This is a pain to look through. i'm sorry :(

* minor fix

* Fixed plugin not functioning with tokio

* Added plugin lifecycle events

added lifecycle events to the plugin entry.

This allows plugins to be in a stopped paused or running state

* Adjusted visibility modifiers

* added basics of an event system

* updated imports.

* added function to get plugin entry as interface to plugin

* updated plugin example

* fixing linting errors

* updated event architecture

* renamed responder module

* added documention

* created a event result builder

* renamed responder

* updated example with interface setting

* moved event system to foundation

* added back tokio to foundation

* modified visibility

* added functions for IResponder

* more module mess

* made event generic

* made responder generic

* added basic plugin event propogation.

* updated plugin event handler.

* same because vscode?

* made plugin event generic

* RIGHT I'M MOVING TO ACTIX

* Started work on actor conversion

* implemented GetInfo for actix server

* implementing clients using actors

* added ability to add and remove clients

* updated foundation with comments and better messages

* Update Cargo.toml

+ added tokio stream

* added auto connection closing to Connection

* Update actix_server.rs

+ added ClientConnection handlers

* added ability to get server updates

* added basic messaging functonality

* deleted old server version

* renamed files to match std structure

* reformatted project

* renamed old files

* renamed serverActor to server

* added proper prelude

* Update client.rs

minor bug fixes

* updated clap

* made server configurable

* added port configurability

~ moved components to seperate modules
~ added builder and config to network manager

* way too much happened here

+ added scriptable version of the server, networkManager and clientManager

+ added lua engine creation
+also added unfinished rhai support
+ also did some restructuring

* made client manager and clients scriptable

* added more scriptable objects

* Created config manager with path read functionality

* fixed network manager message result types

* added bootstrapper actor

* moved arg matcher funtion.

* created singleton config manager using once pattern.

* removed bootstrapper and created config builder

* fixed panic on file not existing

* ignoring config_file

* added config manager to network manager

* updated some docs

* added config support to network manager, changed lifecycle a bit as well

* removed redundant handlers

* added configuration through args support to config manager and network manager.

* added config manager support to server and removed old serverConfig references

* performed cleanup of network manager

* performed cleanup of server

* updated config manager api to use optionals. This leads to pre-configuration and easier readability and understanding.

* updated server and network manager to new style for setting config values

* cleaned up prelude linting errors

* cleaned up network listener

* cleaned up connection initator

* cleaned up connection actor

* cleaned up lua manager

* cleaned up rhai manager

* cleaned up config manager

* cleaned up client manager

* cleaned up client actor

* cleaned up scriptable interfaces

* updated client uuid version

* fixed client cargo toml

* undone previous change

* moved arg parser to folder as file

* uhh... changes and formatting

* created chat manager and added it to the client manager

* added global message spport to client manager

* refixed network manager (again again)

* added debug messages

* refactord client code

* refactored messages and added new message types

* refactord network manager module name

* resolved warning in connection

* refactored message into foundation, added get message support for clients

* Fixed messages being sent to sender

* fixed not implemented panic, and field misnaming

* turned some references into weak variaties, to prevent memory leaks.

* turned ref into weak ref

* removing  strong references from scriping managers

* fixing lints

* making moe things weak repferences

* refactored connection initiator into spereate files

* accedentally ran cargo fmt instead of on one file

* removed the read loop, and replaced it with a recurrent messages.

* added docker files and automated build scripts
2023-12-01 21:48:28 +00:00
michael bailey f43ceb07df
Create rust.yml (#3)
+ added a workflow file for CI
2021-04-13 21:54:20 +01:00