Releases: TheElectronWill/Niol
Releases · TheElectronWill/Niol
v2.0.1
Niol v2 - revamped
- Better NiolInput/NiolOutput
- NiolBuffer with only two subclasses to enable JIT bimorphic optimizations
- New BytesStorage system
- Automatic memory management with PhantomReferences
- Improved ScalableSelector and ClientAttach
- Various bugfixes and performance improvements
Niol 1.5.2 bugfix
Fix varint parsing
Niol 1.5.1
Added putFloat(Double) and putShort(Int)
Simpler ClientAttach
- Removed the "infos" field and parameters
- TcpListener and ServerChannelInfos now take the type of ClientAttach as a parameter
Compatibility with java's DataInput and DataOutput
1.4 Update dependencies
ScalableSelector and data transformation
ScalableSelectorreplacesTcpServerand can handle multipleServerSocketChannelsat the same time.ClientChannelnow has an optional data transformation function, to transform the incoming data before the message is reconstructed and parsed. For instance, you can use this function to decipher the incoming bytes with AES.
BaseBuffer trait & other things
- The providers are now restrained to BaseBuffers.
- Added a logo and a good README.md
- Better documentation
Improved, fixed, tested
Improved
- New method
NiolBuffer.subWrite(maxLength) - New method
NiolBuffer.lsub(begin, end) - Precise definition of what the
submethods return. - Better handling of large messages
- Upgrade to scala 2.12.4
- More documentation
Fixed
- Fixed
TcpServer.start() - Fixed
CircularBuffer.skipRead(n) - Fixed
CircularBuffer.subRead(maxLength) - Fixed
CompositeBuffer.subRead(maxLength) - In
CompositeBuffer, readAvail and writeAvail are updated when necessary NioBasedBuffernow redefines thesubmethod to a faster and more adapted code- In
ClientAttach, the consistency of the SelectionKey's interestOps is now guaranteed by a synchronized block.
First stable release
Niol is ready to use!
Extend the TcpServer and ClientAttach classes and use the NiolBuffers to create a TCP server in a few minutes.