diff --git a/README.md b/README.md new file mode 100644 index 0000000..fd7027f --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# Channels for ruby + +A complete implementation of channels for Ruby, including size and close. + +## How? + +The usual `gem insall channel`, or `gem channel` in your `Gemfile`. + +``` +require 'channel' + +c = Channel.new +go -> { c << 'Hello, world!' } +puts c.recv +``` + +## Why? + +While some packages already exist, many fail at providing a thorough +implementation, often limited to `send`/`recv`, and most critically, all +missing `close` support. A complete implementation makes channels much more +useful, as most patterns rely much more details than simply `send`/`recv`. + +To prove this point and to serve as a nice tutorial anyway, some examples +ported over from [Go by example](http://gobyexample.com) are included in +[examples](examples). + +## License + +MIT