Skip to content

Releases: socketry/lightio

v0.4.3

27 Feb 16:15
Compare
Choose a tag to compare
  1. Performance: LightIO::IO classes now use a read buffer to save data, to avoid some wait operations.
  2. Performance: Optimize LightIO::Watchers::IO#close, avoid create unnecessary monitors.
  3. Fix: Fix return value of LightIO::IO#flush, binmode.

v0.4.1

10 Feb 11:35
Compare
Choose a tag to compare
  1. Fix LightIO::Library::OpenSSL::SSL::SSLSocket#to_io, It cause https requests blocking.
    https://github.com/socketry/lightio/blob/master/examples/http_requests.rb

v0.4.0

10 Feb 09:14
Compare
Choose a tag to compare
  1. Support global monkey patch: LightIO::Monkey.patch_all!
  2. Support Kernel methods, open, system, (backquote), spawn, gets...
  3. Fix Timeout module
  4. Support inherit from monkey patched classes #4
  5. Add net/http test case

v0.4.0.pre

30 Jan 18:08
Compare
Choose a tag to compare
v0.4.0.pre Pre-release
Pre-release
  • Support monkey patch, use LightIO::Monkey.patch_all! / LightIO::Monkey.unpatch_all! to apply or reverse apply.
  • Big refactoring

v0.3.2

20 Jan 09:57
Compare
Choose a tag to compare
  1. Fix IO#open, return a io obj if no block given
  2. Fix Thread methods
  3. Beam handle Exception instead StandardError
  4. Wrap Socket#accept_nonblock
  5. IO.select support #to_io implicit conversion
  6. Add Thread::ConditionVariable
  7. Fix IO#select, make sure it can return correct fds immediately

Version 0.3.2 can work with Sinatra and Puma.

See example, how to manually monkey patch on Sinatra and Puma: https://github.com/jjyr/lightio_benchmark/blob/master/server.rb

v0.3.1

06 Jan 13:47
Compare
Choose a tag to compare
  1. Add IOloop#close IOloop#close? methods, allow user to terminate IO loop
  2. IO.select may return un-readable/writable sockets(see #1 ), fixed in this version

v0.3.0 Maybe first stable version.

01 Jan 09:24
Compare
Choose a tag to compare

Can manually monkey patch and play with webrick server. see https://github.com/jjyr/lightio_benchmark/blob/master/server.rb

  1. Fix LightIO.sleep(0)
  2. Optimize IO.select
  3. Fix Queue#push nil error
  4. Add SizedQueue
  5. Add Thread
  6. Add Thread::Mutex
  7. Add ThreadGroup
  8. Allow user use LIGHTIO_BACKEND env choose NIO backend
  9. Fix Beam.pass schedule
  10. Drop ruby 2.2.x support