
Security News
Follow-up and Clarification on Recent Malicious Ruby Gems Campaign
A clarification on our recent research investigating 60 malicious Ruby gems.
An implementation of the Ruby socket standard library for Rubinius, written using Ruby and FFI (and a tiny bit of C++ defined in Rubinius itself). More information about the socket standard library can be found at http://ruby-doc.org/stdlib/libdoc/socket/rdoc/index.html.
Please note that only Rubinius is officially supported. While other Ruby implementations are free to use rubysl-socket according to its license we do not provide any support for this.
Issues for the socket standard library in general should be reported at https://bugs.ruby-lang.org/, only use this project's issue tracker for reporting issues with the Gem itself (e.g. something isn't implemented correctly).
The 2.0 branch of rubysl-socket targets Ruby 2.x, other Ruby versions are currently not supported.
Currently the use of ancillary data is not supported. While
Socket::AncillaryData
exists and is implemented for the most part it's not
used by BasicSocket#sendmsg
and BasicSocket#recvmsg
. Extracting/building
ancillary data requires the use of platform specific macros and these can't be
easily bound to Ruby via FFI. Using a C extension only adds more complexity for
a feature that will most likely be rarely used, if ever.
Windows is currently not supported and there are no plans to support it for the foreseeable future. The Rubinius team sadly lacks the capacity and experience to support Windows besides also supporting the countless Linux and BSD distributions out there.
By default rubysl-socket is already installed when you install Rubinius.
Currently updating rubysl-socket requires re-installing Rubinius, in the future
you can simply update rubysl-socket by running gem update rubysl-socket
.
In general the contributing guidelines are the same as Rubinius (http://rubinius.com/doc/en/contributing/). The structure of this repository is as following:
lib/rubysl/socket/
: contains all code living under the RubySL::Socket
namespace, mostly used for FFI code, helper methods, etc.lib/socket/
: contains the code of the public socket APIs such as Socket
,
TCPSocket
, etc. Code in this directory should not refer to the Rubinius
namespace directly, instead use (or create) methods defined under the
RubySL::Socket
namespace.spec/
: all mspec specsTo get started, clone the directory and install all Gems:
bundle install
You'll want to do this for both your local CRuby and Rubinius installations.
Running the specs under CRuby works as following:
mspec spec/path/to/file_spec.rb
Running the specs under Rubinius requires an extra environment variable so Rubinius loads the local rubysl-socket copy instead of the installed one:
RUBYLIB=.:lib mspec spec/path/to/file_spec.rb
All specs must pass on both CRuby and Rubinius.
rubysl-socket is licensed under the BSD license unless stated otherwise, a copy
of this license can be found in the file "LICENSE". The MRI source code found in
lib/socket/mri.rb
is licensed under the same license as Ruby, a copy of this
license can be found in the file itself.
FAQs
Unknown package
We found that rubysl-socket demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.
Security News
ESLint now supports parallel linting with a new --concurrency flag, delivering major speed gains and closing a 10-year-old feature request.
Research
/Security News
A malicious Go module posing as an SSH brute forcer exfiltrates stolen credentials to a Telegram bot controlled by a Russian-speaking threat actor.