Commit Graph

23 Commits

Author SHA1 Message Date
Michael Bailey 0bfbd9c747
Grpc-manager (#22)
* 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
2024-05-30 20:42:42 +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 5aa4f8caf6
Pulling basic server functionality into development (#9)
* removed redundant files

* moved files to new foundation library

* added new foundation crate

* added new client program crate

* added new server program crate

* added new serverctl program crate

* change toml to be a workspace instead of a project

* implementing more connection to network functionality

* implementing more connection to network functionality

* Implemented IMessageable for client, client manager as well as basic commands in netmgr

* fixing blocking issues with componenets

* adding network stream queuefor handling connections in a non blocking way

* ffixing blocking calls in network manager

* adding threading support to prevent blocking calls

* running rust formatter

* Created Client threads and implemented connect command

* fixed client not disconnecting issue

* adding messaging support between clients

* Implemented client messaging through the server

* removing unnecessary prints and thread delays

* adding support for updating clients
2021-04-13 18:17:58 +01:00
michael-bailey e92096b6ad implemented basic messageing system for clients. 2021-03-18 08:55:21 +00:00
michael-bailey 7731e18d8b implemeting client functionality and changed types 2021-03-12 17:17:48 +00:00
michael-bailey 87a2a6b6da Moving files around and implementing more of the client manager. 2021-02-08 21:12:10 +00:00
michael-bailey b3de7670f3 got running flag to display 2021-02-08 21:12:10 +00:00
michael-bailey 7663a3f4ab Update Cargo.toml
+ openssl for crypto
- lazy-static and async-std
2020-08-23 15:36:14 +01:00
michael-bailey 2837ab52e1 Update Cargo.toml
- removed machine learning lib
2020-08-16 17:12:50 +01:00
michael-bailey dbf49a65b2 Revert "Merge branch 'master' into ref-method"
This reverts commit 1a6b344b58, reversing
changes made to be167055e8.
2020-08-12 20:56:05 +01:00
michael-bailey 1a6b344b58 Merge branch 'master' into ref-method 2020-08-12 17:24:12 +01:00
Mitchell fa57f25d8a added core server funcs to ui 2020-08-10 18:53:53 +01:00
michael-bailey 03ab7290c5 added functions 2020-08-09 21:17:17 +01:00
michael-bailey ef86b89042 added proper definition of traits for classes 2020-08-09 11:36:14 +01:00
michael-bailey a1474d01de increment version
+ clap crate
~ attempting fix on getting info
+ added clap arg parsing
+ added rudementary client, remove and update and error
2020-08-07 23:48:05 +01:00
michael-bailey 743433ab57 Update Cargo.toml
+ added cursive, crossterm, zeroize, and rayon.
2020-08-03 12:36:55 +01:00
Mitch161 0e6d141704 added new crate for statics 2020-07-19 21:04:41 +01:00
Mitchell 1d844ff57d added concurrent libs 2020-06-30 14:26:06 +01:00
Mitchell 15edb7872f update to clientUpdate command
Will not work currently as sync issues exist
2020-06-16 17:37:11 +01:00
Mitchell 830e5c9d64 added fetch all clients system 2020-06-07 20:16:45 +01:00
Mitchell e4066b96bd enabled regex 2020-06-04 13:47:20 +00:00
Mitchell 6b59c58098 changed rust project name to match git 2020-04-10 10:55:51 +00:00
Mitchell e85fde11e4 basic project start 2020-04-08 22:49:14 +00:00