Releases: synsejse/PacketNET
Version 1.5 - Major Refactoring and Enhancements
This release brings significant changes and enhancements to the Client and Server classes, threading, benchmarking, checksum functionality, logging framework, and listener classes. The codebase has undergone major refactoring to improve readability, maintainability, and performance.
Here are the key highlights of this release:
- Rewrote the entire Client and Server classes:
- The Client and Server classes have been rewritten from scratch, resulting in cleaner and more modular code.
- The refactoring improves code organization, readability, and extensibility.
- Threading improvements:
- The threading mechanism has been redesigned and is now handled by the new ThreadManager.
- The new threading implementation provides better control and management of threads, leading to improved performance and stability.
- Introducing BenchmarkTest:
- A new BenchmarkTest feature has been added to the application.
- The BenchmarkTest allows users to measure and evaluate the performance of the application under different scenarios.
- Updated checksum functionality:
- The checksum functionality has been updated and improved.
- The new implementation enhances the accuracy and reliability of data integrity checks.
- Migrated to SLF4J:
- The logging framework has been migrated to SLF4J (Simple Logging Facade for Java).
- SLF4J provides a standardized and flexible logging interface, improving logging capabilities and compatibility.
- Modified listener classes:
- The listener classes have been modified to accommodate the changes in the Client and Server classes.
These changes in version 1.5 significantly enhance the application's performance, maintainability, and extensibility. The codebase is more robust, and the new features provide users with better control and monitoring capabilities.
Thank you for your using PacketNET. We hope you enjoy the improvements in version 1.5!
Version 1.4.2 - Write Buffer Size and Connection Removal Fix
- Introduced writeBufferSize to control the buffer size for writing data.
- Fixed a bug that caused issues when removing connections after the migration from HashMap to CopyOnWriteArrayList.
This version brings important updates and bug fixes to the codebase. The introduction of the writeBufferSize parameter allows users to control the buffer size used for writing data, providing better control over memory usage and performance optimization.
Additionally, a bug that affected connection removal functionality has been fixed. Previously, after migrating from HashMap to CopyOnWriteArrayList, the removal of connections didn't work as expected. This issue has been addressed, ensuring that connections can be correctly removed from the list.
We recommend all users upgrade to version 1.4.2 to benefit from these improvements and bug fixes.
Enjoy the latest release!
Version 1.4.1 - Bug Fix - Connection Mismatch and Data Structure Enhancement
This release (version 1.4.1) addresses a critical bug related to connection mismatch in the server class. Additionally, it introduces an enhancement by replacing the underlying data structure to ensure reliable connection management.
Bug Fix:
- Fixed an issue where multiple connections with the same IP address would result in incorrect identification due to IP address replacement.
- The bug fix now checks each connection's IP address and UDP port to accurately identify the corresponding connection.
Enhancement:
- Replaced the previous HashMap<InetAddress, Connection> with a CopyOnWriteArrayList data structure for connection management.
- The new data structure guarantees thread-safe modifications while preserving performance for small to medium-sized connection lists.
- This enhancement ensures that multiple connections with the same IP address are maintained separately without the risk of replacement.
We recommend all users to upgrade to this version to benefit from the bug fix and improved connection management.
Please note that this release focuses solely on fixing the connection mismatch bug and enhancing the data structure. If you encounter any other issues or have suggestions for future improvements, please don't hesitate to provide feedback.
Happy coding!
Version 1.4 - ByteBuffers & Listeners Update
This update brings significant changes to the codebase, introducing the use of ByteBuffers and modifying the listeners functionality. Additionally, the example code has been updated to demonstrate object serialization and has been made shorter due to the new default listener.
Changes:
- Replaced byte arrays with ByteBuffers for improved memory management and performance.
- Removed the 'I' listeners interface and replaced it with a new listener approach.
- Listeners now have a default function of printing to the console, simplifying the implementation.
- Modified the example code to showcase the usage of object serialization.
- The example code has been shortened, taking advantage of the default listener implementation.
These updates enhance the efficiency and functionality of the Client class, providing a more streamlined experience for users. Enjoy the improved performance and simplified usage!
Version 1.3.1 - Compression and Buffer Size Improvements
- Added the DeflaterCompression class for packet compression using DeflaterOutputStream/InflaterOutputStream.
- Updated PacketBuilder to initialize ByteArrayOutputStream and DataOutputStream in the constructor.
- Set a default buffer size of 8192 for Client and Server classes.
- Updated the example file to reflect the changes.
In this release, we introduce the DeflaterCompression class, which allows packets to be compressed using the DeflaterOutputStream/InflaterOutputStream. This helps reduce network bandwidth usage and improves overall performance, especially when dealing with large amounts of data transmission.
We have also made improvements to the PacketBuilder class by moving the initialization of ByteArrayOutputStream and DataOutputStream to the constructor. This change simplifies the packet building process and enhances code readability.
Furthermore, we have set a default buffer size of 8192 for both the Client and Server classes. This default value ensures optimal performance while providing flexibility for users to customize the buffer size according to their specific requirements.
Please note that the example file has been updated to showcase the new features and reflect the latest changes in the library.
We recommend all users of PacketNet to upgrade to this version to take advantage of the packet compression, improved PacketBuilder initialization, and default buffer size enhancements.
Version 1.3 - Broadcast Fix and Connection Manager
- Fixed a critical bug related to broadcasting packets to connected clients.
- Added a connection manager for managing client connections.
With this update, the broadcast functionality has been thoroughly tested and the bug causing packet loss during broadcast has been resolved. Clients will now reliably receive broadcasted packets across both TCP and UDP protocols.
Additionally, a connection manager has been introduced to keep track of client connections. This allows for better management and tracking of connected clients, making it easier to handle and monitor the server's network interactions.
This release focuses on stability and performance improvements, ensuring a more reliable and streamlined experience for server administrators and developers.
We recommend all users of PacketNet to upgrade to this version to benefit from the bug fix and the new connection manager feature.
Version 1.2 - Enhanced Exception Handling and Improved Server Performance
This release introduces several enhancements and improvements to the PacketNET library. The main focus of version 1.2 is to improve exception handling and optimize server performance. The key changes include:
- Replaced the usage of Thread.interrupt in the client to improve the reliability and stability of the library.
- Modified various classes to throw exceptions properly, allowing users to handle them more effectively and gracefully.
- Added IOException throwing to PacketReader to provide better error handling and reporting during packet reading operations.
- Replaced the List of sockets in the server implementation with a LinkedHashSet, ensuring unique socket entries and optimizing performance.
- Introduced an ExecutorService for TCP handling in the server, allowing for efficient management and execution of client connections.
These changes contribute to a more robust and efficient PacketNet library, providing a better experience for users. Upgrade to version 1.2 to take advantage of these improvements and enjoy enhanced exception handling and optimized server performance.
Version 1.1: AES256 Encryption, Buffer Size Control, and More
- Added AES256 encryption for secure packet transmission
- Directly define byte buffer size in the constructor of the Client and Server for better control
- Moved PacketCompressor to a more suitable package
- Removed the Constants class to streamline the codebase
- Made Packet constructor public for enhanced usability
- Added support for UUID in PacketBuilder and PacketReader
- Updated the test accordingly to reflect the changes
PacketNET v1.0
PacketNET v1.0 is the initial release of the PacketNET library. It provides a robust framework for network communication, offering a simple and efficient way to send and receive packets over TCP and UDP protocols. With PacketNET, developers can easily build reliable client-server applications with support for packet compression and decompression. This release marks a significant milestone in network programming, empowering developers to create efficient and scalable network solutions.