$ git log --pretty=format:'%h %s (%cs)%d'
cb4eac1 drop remaining 1.8 and fragile autopush code paths (2023-09-10)
(HEAD -> master)
12e7f65 sock_for_fd: drop 1.8/1.9/2.x/3.0-specific hacks (2023-09-10)
586ab4d my_fileno: drop Ruby 1.8 support, really require 1.9.3 (2023-09-10)
6e08850 doc: various updates ahead of release (2023-09-10)
dbf5290 Use rb_io_descriptor if available for Ruby 3.3 compatibility (2023-09-05)
05527ab kgio 2.11.4 (2021-05-25)
(tag: v2.11.4)
f6530b6 pkg.mk: remove index.html and created.rid from homepage (2021-05-25)
4db3591 fix compatibility with GC.compact (2021-05-25)
e50743e doc: update to v3 Onion URLs (2021-05-25)
44bc457 HACKING: update docs with "git request-pull" info (2021-05-25)
...
$ git cat-file blob HEAD:README
= kgio - a legacy I/O library that did a decade of damage to Ruby
This is a legacy project has discouraged improvements to Ruby itself.
It has done a decade of harm to Ruby and continues to harm it by being
used by (unfortunately) popular projects. Ruby 2.3 and later makes
this obsolete. kgio provides non-blocking I/O methods for Ruby without
raising exceptions on EAGAIN and EINPROGRESS.
== Features
* Can avoid expensive exceptions on common EAGAIN/EINPROGRESS errors,
returning :wait_readable or :wait_writable instead.
These exceptions got more expensive to hit under Ruby 1.9.2
(but were fixed in Ruby 1.9.3 and later to 1.9.1 performance levels,
which were still bad)
* Returns the unwritten portion of the string on partial writes,
making it ideal for buffering unwritten data.
* May call any method defined to be "kgio_wait_writable" or
"kgio_wait_readable" methods to allow socket/pipe objects to make custom
callbacks (such as adding the file descriptor to a poll set and yielding
the current Fiber).
* Uses {accept4}[http://man7.org/linux/man-pages/man2/accept4.2.html]
on newer GNU/Linux systems to avoid unnecessary fcntl() calls
* Uses MSG_DONTWAIT on GNU/Linux to further avoid unnecessary fcntl() calls
* Compatible with existing Ruby IO objects and Ruby threading.
== Install
The library consists of a C extension so you'll need a Unix-like system
with a C compiler and Ruby development libraries/headers.
You may install it via RubyGems.org:
gem install kgio
You can get the latest source via git from the following locations
(these versions may not be stable):
git clone https://yhbt.net/kgio.git
git clone https://repo.or.cz/kgio.git # mirror
You may browse the code from the web and download the latest snapshot
tarballs here:
* https://yhbt.net/kgio.git
* http://repo.or.cz/w/kgio.git (gitweb)
See the HACKING guide on how to contribute and build prerelease gems
from git.
== Contact
All feedback (bug reports, user/development dicussion, patches, pull
requests) go to the public mailbox/newsgroup. See the ISSUES document for
information on the {kgio public mailbox}[mailto:kgio-public@yhbt.net]
For the latest on kgio releases, you may check our NEWS page (and
subscribe to our Atom feed).
# heads (aka `branches'):
$ git for-each-ref --sort=-creatordate refs/heads \
--format='%(HEAD) %(refname:short) %(subject) (%(creatordate:short))'
* master drop remaining 1.8 and fragile autopush code paths (2023-09-10)
rbx-wip split read_write.c into {read,write,writev}.c (2013-11-21)
2.4-stable kgio 2.4.2 - OpenSolaris build fix (2011-06-14)
# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
--format='%(refname:short) %(subject) (%(creatordate:short))'
v2.11.4 kgio 2.11.4 (2021-05-25) tar.gz
v2.11.3 kgio 2.11.3 (2020-01-08) tar.gz
v2.11.2 kgio 2.11.2 - fix Ruby 2.5 compatibility for accept_class (2018-01-30) tar.gz
v2.11.1 kgio 2.11.1 - fix Ruby 2.5.0dev compatibility (2017-12-15) tar.gz
v2.11.0 kgio 2.11.0 - reverting 2.10.0 breakage (2016-12-16) tar.gz
v2.10.0 kgio 2.10.0 - slimming down... (2015-09-06) tar.gz
v2.9.3 kgio 2.9.3 - minor cleanups and fixes (2015-01-12) tar.gz
v2.9.2 kgio 2.9.2 - avoid deprecated/removed function (2014-02-15) tar.gz
v2.9.1 kgio 2.9.1 - various Ruby 1.8.7 fixes (2014-02-05) tar.gz
v2.9.0 kgio 2.9.0 - cleanups, bug fixes, minor improvements (2014-02-04) tar.gz
...
# associated public inboxes:
# (number on the left is used for dev purposes)
https://yhbt.net/kgio-public
git clone git://yhbt.net/kgio.git
git clone https://yhbt.net/kgio.git