Skip to content

Commit

Permalink
Version 2.0.0: Chaos and Invade
Browse files Browse the repository at this point in the history
  • Loading branch information
Sewer56 committed Jul 8, 2022
1 parent 40c0ac7 commit 89787e3
Show file tree
Hide file tree
Showing 95 changed files with 3,268 additions and 1,344 deletions.
81 changes: 0 additions & 81 deletions Docs/ImplementingCompressorsSerializers.md

This file was deleted.

136 changes: 0 additions & 136 deletions Docs/UseAsNetworkingLibrary.md

This file was deleted.

47 changes: 0 additions & 47 deletions Docs/UseAsSerializationLibrary.md

This file was deleted.

48 changes: 17 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,42 +6,28 @@
<br/> <br/>
</div>

# Packages
**Reloaded.Messaging:** <a href="https://www.nuget.org/packages/Reloaded.Messaging"><img src="https://img.shields.io/nuget/v/Reloaded.Messaging.svg" alt="NuGet" /></a>

**Reloaded.Messaging.Interfaces:** <a href="https://www.nuget.org/packages/Reloaded.Messaging.Interfaces"><img src="https://img.shields.io/nuget/v/Reloaded.Messaging.Interfaces.svg" alt="NuGet" /></a>

**Reloaded.Messaging.Serializer.MessagePack**: <a href="https://www.nuget.org/packages/Reloaded.Messaging.Serializer.MessagePack"><img src="https://img.shields.io/nuget/v/Reloaded.Messaging.Serializer.MessagePack.svg" alt="NuGet" /></a>

**Reloaded.Messaging.Serializer.ReloadedMemory**: <a href="https://www.nuget.org/packages/Reloaded.Messaging.Serializer.ReloadedMemory"><img src="https://img.shields.io/nuget/v/Reloaded.Messaging.Serializer.ReloadedMemory.svg" alt="NuGet" /></a>

**Reloaded.Messaging.Serializer.SystemTextJson**: <a href="https://www.nuget.org/packages/Reloaded.Messaging.Serializer.SystemTextJson"><img src="https://img.shields.io/nuget/v/Reloaded.Messaging.Serializer.SystemTextJson.svg" alt="NuGet" /></a>

**Reloaded.Messaging.Serializer.NewtonsoftJson**: <a href="https://www.nuget.org/packages/Reloaded.Messaging.Serializer.NewtonsoftJson"><img src="https://img.shields.io/nuget/v/Reloaded.Messaging.Serializer.NewtonsoftJson.svg" alt="NuGet" /></a>

**Reloaded.Messaging.Compressor.ZStandard**: <a href="https://www.nuget.org/packages/Reloaded.Messaging.Compressor.ZStandard"><img src="https://img.shields.io/nuget/v/Reloaded.Messaging.Compressor.ZStandard.svg" alt="NuGet" /></a>

# Introduction
Reloaded.Networking is [Reloaded II](https://github.com/Reloaded-Project/Reloaded-II/)'s Networking and Serialization library. The main goal for the library is to provide an extensible "event-like" solution for passing messages across a local or remote network that extends on the base functionality of [LiteNetLib](https://github.com/RevenantX/LiteNetLib) by Ruslan Pyrch (RevenantX) .

It has been slightly extended in the hope of becoming more general purpose, perhaps to be reused in other projects.

## Idea
`Reloaded.Networking` is a simple barebones library to solve a deceptively annoying problem: Writing code that distinguishes the type of message received over a network and performs a specific action.
Reloaded.Networking is library that adds support for simple, high performance message packing to existing networking libraries.

## Characteristics
- Minimal networking overhead in most use cases (1 byte)*.
- Choice of serializer/compressor on a per type (struct/class) basis.
- Simple to use.
Specifically, it provides a minimal framework for performing the following tasks:

*Assuming user has less than 256 unique types of network messages.
- Asynchronous message processing for external networking libraries.
- Sending/Receiving messages with (de)serialization and [optional] (de)compression.
- Automatically dispatching messages to appropriate handlers (per message type).

*Alternative unmanaged types (e.g. short, int) can be specified increasing overhead to `sizeof(type)` and respectively increasing max unique types.*
It was originally created for Reloaded II, however has been extended in the hope of becoming a more general purpose library.

This library is heavily optimized for achieving high throughput for messages `< 128KB`.

## Usage

[Usage: As Networking Library](./Docs/UseAsNetworkingLibrary.md)
## Characteristics
- High performance. (Memory pooling, low heap allocation, stack allocation).
- Low networking overhead.
- Custom serializer/compressor per class type.
- Simple message packing/protocol.
- 1 byte overhead for uncompressed, 5 bytes for compressed.
- Unsafe.

[Usage: As Serialization Library](./Docs/UseAsSerializationLibrary.md)
## Documentation

[Adding 3rd Party Compressors & Serializers](./Docs/ImplementingCompressorsSerializers.md)
More information can be found in the dedicated documentation site.
Loading

0 comments on commit 89787e3

Please sign in to comment.