Releases: navining/Zeus
Releases · navining/Zeus
Zeus v0.2.5
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
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
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
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
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
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
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
- Encapsulate Zeus-Server and Zeus-Client
- Client now is able to connect to multiple servers simultaneously
- Use CMake to build
Zeus v0.1.3
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
Select model
- Apply select model to server, able to handle multi-client connections
- Apply select model to client
- Use multithreads for client input