Skip to content

Releases: navining/Zeus

Zeus v0.2.5

01 Aug 04:27
Compare
Choose a tag to compare

epoll

  • TcpServer, TcpSubserver and TcpClient now support epoll model (only available under Linux)
  • IO multiplexing model can be switched in common.h

Byte Stream

  • Use Stream instead of Message in onMessage() API
  • Now support passing integers, arrays and strings directly through Stream without using a struct

Exception Information

  • Log system now supports output of errno and exception information provided by the OS with LOG_PERROR

Other Updates

  • Fixed a bug that the server can not receive messages properly under Linux

Zeus v0.2.4

14 Jul 05:11
Compare
Choose a tag to compare

Log system

  • Implement a asynchronous log system, support multiple warning levels

Configuration

  • Server and Client Now support reading configuration files from outside
  • Provide sample bat and shell scripts

Other Changes

  • Upgrade client, increase scalability
  • Add maximum connection limit

Zeus v0.2.3

30 Jun 06:31
Compare
Choose a tag to compare

This version mainly enhance the stability of the server.

Heartbeat Detection

  • Server now is able to actively disconnect from the client when there's no response

Timing Eending

  • Server now is able to send message regularly after certain time

Safe Exit

  • Use semaphore to ensure the exit order of threads
  • Resources are now released properly

Other Changes

  • Implement a Thread class to achieve better control of threads
  • Implement a Buffer class to simplify code logics of sending and receiving messages

Zeus v0.2.2

19 Jun 09:13
Compare
Choose a tag to compare

Smart Pointers

  • Smart pointers are used in the entire solution to eliminate memory leak

Memory Pool

  • Implement a maintainable memory pool defined in Memory.h
  • Include Allocator.hpp to use the memory pool (not enabled by default)

Object Pool

  • An object pool is included in Object.hpp

Other Changes

  • Reorganized files, seperated each module
  • Block SIGPIPE due to socket disconnection, able to work stably under Linux

Zeus v0.2.1

19 Jun 08:34
Compare
Choose a tag to compare

Performance optimization

  • Optimized select model
  • Seperate receive thread and send thread in each subserver
  • Eliminate potential memory leaks

Warning

  • This version won't work on Linux or MacOS because of SIGPIPE

Zeus v0.2.0

11 Jun 08:36
Compare
Choose a tag to compare

Multithreading

  • Multithreading is used in the server. The main thread handles clients connections, while other threads handle messages.

Producer-Consumer Pattern

  • Use a message queue for adding clients connections.

Event interface

  • Define an event interface which provides three methods onConnection, onDisconnection and onMessage
  • Custom servers can now inherit from TcpServer and implement the interface

Other features

  • Improve log output
  • Integrate common files

Zeus v0.1.5

06 Jun 08:19
Compare
Choose a tag to compare

Buffering

  • Add a secondary buffer to solve system buffer overflow problem with large amount of data
  • Unpack sticky packages

Benchmark

  • Add a benchmark to measure the performance of the server
  • Modify the client to simulate a large number of client connections

Zeus v0.1.4

26 Apr 09:01
Compare
Choose a tag to compare
  • Encapsulate Zeus-Server and Zeus-Client
  • Client now is able to connect to multiple servers simultaneously
  • Use CMake to build

Zeus v0.1.3

22 Apr 05:11
Compare
Choose a tag to compare

Cross platfrom

  • Cross-platform client in Windows, Linux and MacOS
  • Cross-platform server in Windows, Linux and MacOS

Test Environment

  • Windows 10.0
  • Linux 4.4.0 (WSL)
  • MacOS 10.12.6

Zeus v0.1.2

19 Apr 05:31
Compare
Choose a tag to compare

Select model

  • Apply select model to server, able to handle multi-client connections
  • Apply select model to client
  • Use multithreads for client input