SNF Release: 0.0.2-alpha
What's in this release?
Currently this version is made as a step forward from a simple proof-of-conept into an actual usable library, although still not perfect and buggy, it's still one step towards that, Revamped core parts, Added new features.. etc.
Changelog
Table of contents
Protocol
Base OPCode
- ✨(new) Detail for Command
INVALID
(0x00):UNIMPLEMENTED_OPCODE
(0x02):- Role: Thrown when the responding entity has not implemented a function for an OPCode Command.
Server
C Library
📖 Documentation: /snf/c/0.0.2-alpha
📂 File(s): 0.0.2-alpha-snf-c.tar.gz
(Source code)
( See below for installation tutorial)
-
✨(new) Added a new variable system: Variables are now stored in a specific structure inside
<SNF/vars.h>
instead of them being scattered around multiple headerfiles.- Tutorial is available here
-
✨(new) Added OPCode Command Functions: which means when you create new OPCode structure you can link function to OPCode Command, hence allowing the use of Custom OPCodes fully,
- Tutorial is available here
-
✨ Revamped Thread pool system
- Revamp note: After research and trial and error, and feedback from other people and after trying it in a project, i realized that i made the implementation wrong, as i used to create each threads whenever there is a
work
to do, which added CPU Time and latency, so after Reading this Wikipedia Page (Last visited on Augest 2, 2024 at 2:37 PM GMT +1). I noticed that I should've created the threads At once and from the beggining. so I did just that in this update and it did do wonders. - Tutorial is available here
- Revamp note: After research and trial and error, and feedback from other people and after trying it in a project, i realized that i made the implementation wrong, as i used to create each threads whenever there is a
-
⚒️ Moved Base OPCode Commands' Response handling from being built-in inside the client handling, into their own functions in the
<SNF/cmds.h>
file. -
⚙️ Improuved Client handling & bug fixed related to it.
-
⚙️ Improuved Documentation
-
⚙️ Improuved Makefile in the following
- ⚙️
make cleanlib
: cleans the shared library binary ( Requires root access ) - ⚙️
make t_<Test File>
make buildtest
: Now builds tests with Address Sanitizer on by default ( Doesn't includemake gdbt_<Test File>
)
- ⚙️
-
♻️ Renamed
<SNF/locate3.h>
➡️<SNF/lookup3.h>
, Due to a mistake ( Lookup3 being the appropriate name )
Client
.NET Library
📖 Documentation: /snfclient/dotnet/0.0.2-alpha
📂 File(s): 0.0.2-alpha-snfclient-dotnet.dll
(Binary)
( See below for installation tutorial)
- ✨(new) Added OPCode Command Functions: which means when you can assign methods that generate responses in case the Server sends a non-response request. ( Incomplete Feature )
- Tutorial is available here
- ✨(new) Added
SNFClient.Exception.OPCode.Unregistred
: Thrown when anSNFClient.OPCode.Member
was not registred but used either by the client or the server. - ♻️ Renamed
RequestResponseCB(Request Response)
➡️RequestCB(Request Response)
inSNFClient.Callbacks
: The naming of delegates is related to it's parameters and not it's use case, this to avoid making two delegates that serve their own usecase but require matching parameters - ⚙️ Improuved Requests system, Bugfixes, & proper calls of callbacks.
- ⚙️ Request Handler now uses three threads:
- One for reading form the socket
- One for writing onto the socket
- ✨(new) One for Callbacks