Celluloid::IO provides an event-driven IO system for building fast, scalable
network applications that integrates directly with the Celluloid actor library,
making it easy to combine both threaded and evented concepts. Celluloid::IO is
ideal for servers which handle large numbers of mostly-idle connections, such as
Websocket servers or chat/messaging systems.
Celluloid::IO provides a different class of actor: one that's slightly slower
and heavier than standard Celluloid actors, but one which contains a
high-performance reactor just like EventMachine or Cool.io. This means
Celluloid::IO actors have the power of both Celluloid actors and evented I/O
loops. Unlike certain other evented I/O systems which limit you to a single
event loop per process, Celluloid::IO lets you make as many actors as you want,
system resources permitting.
Rather than callbacks, Celluloid::IO exposes a synchronous API built on duck
types of Ruby's own IO classes, such as TCPServer and TCPSocket. These classes
work identically to their core Ruby counterparts, but in the scope of
Celluloid::IO actors provide "evented" performance. Since they're drop-in
replacements for the standard classes, there's no need to rewrite every library
just to take advantage of Celluloid::IO's event loop and you can freely switch
between evented and blocking IO even over the lifetime of a single connection.
WWW: https://github.com/celluloid/celluloid-io
RG: https://rubygems.org/gems/celluloid-io
nio4r provides an abstract, cross-platform stateful I/O selector API for Ruby.
I/O selectors are the heart of "reactor"-based event loops, and monitor multiple
I/O objects for various types of readiness, e.g. ready for reading or writing.
The most similar API provided by Ruby today is Kernel.select, however the select
API requires you to pass in arrays of all of the I/O objects you're interested
in every time. nio4r provides a more object-oriented API that lets you register
I/O objects with a selector then handle them when they're selected for various
types of events.
nio4r is modeled after the Java NIO API, but simplified for ease-of-use.
Its goals are:
- Expose high-level interfaces for stateful IO selectors
- Keep the API small to maximize both portability and performance across many
different OSes and Ruby VMs
- Provide inherently thread-safe facilities for working with IO objects
WWW: https://github.com/celluloid/nio4r
RG: https://rubygems.org/gems/nio4r
- Use SUB_FILES instead of own backed version
- Have etc/perl5_version in the package instead of generating a static
one at install
- Move some mkdirs from pkg-install to pkg-plist
- Move the bin/perl5 creation from plist to post-install
Reviewed by: az
Sponsored by: Absolight
- change mastersites to PYPI (it hold more fresh version - 1.3)
- switch to using PYDISTUTILS_AUTOPLIST, so remove no more needed
PYDISTUTILS_PKGNAME and PYDISTUTILS_EGGINFO
- use DOS2UNIX to clean up cfgparse code
- support stage, by install port docs unconditionally to stage area
- remove PLIST_SUB that wasn't used anywhere in pkg-plist
- whitespace fix in pkg-descr
PR: 185564
Submitted by: rm (myself)
Approved by: John Ferrell <jdferrell3@gmail.com> (maintainer)
Added STAGING support
Added LICENSE (NSD3CLAUSE) statement
Other small changes to make portlint more happy
PR: 186631
Submitted by: Jaap Akkerhuis <jaap@NLnetLabs.nl> (maintainer)
- support staging
while here:
- move manpages to packing-list
- remove MAKE_JOBS_UNSAFE - builds fine here
- install docs and examples to stage area unconditionally
- remove redundant inclusion of bsd.port.options.mk
PR: 186667
Submitted by: Jose Garcia Juanino <jjuanino@gmail.com> (maintainer)