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
ScalableSelector
replacesTcpServer
and can handle multipleServerSocketChannels
at the same time.ClientChannel
now 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
sub
methods 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 NioBasedBuffer
now redefines thesub
method 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.