22[ ![ Gem Version] ( https://badge.fury.io/rb/concurrent-ruby.png )] ( http://badge.fury.io/rb/concurrent-ruby ) [ ![ Build Status] ( https://travis-ci.org/ruby-concurrency/concurrent-ruby.svg?branch=master )] ( https://travis-ci.org/ruby-concurrency/concurrent-ruby ) [ ![ Coverage Status] ( https://coveralls.io/repos/ruby-concurrency/concurrent-ruby/badge.png )] ( https://coveralls.io/r/ruby-concurrency/concurrent-ruby ) [ ![ Code Climate] ( https://codeclimate.com/github/ruby-concurrency/concurrent-ruby.png )] ( https://codeclimate.com/github/ruby-concurrency/concurrent-ruby ) [ ![ Inline docs] ( http://inch-ci.org/github/ruby-concurrency/concurrent-ruby.png )] ( http://inch-ci.org/github/ruby-concurrency/concurrent-ruby ) [ ![ Dependency Status] ( https://gemnasium.com/ruby-concurrency/concurrent-ruby.png )] ( https://gemnasium.com/ruby-concurrency/concurrent-ruby )
33
44<table >
5- <tr >
6- <td align =" left " valign =" top " >
7- <p >
8- Modern concurrency tools for Ruby. Inspired by
9- <a href =" http://www.erlang.org/doc/reference_manual/processes.html " >Erlang</a >,
10- <a href =" http://clojure.org/concurrent_programming " >Clojure</a >,
11- <a href =" http://www.scala-lang.org/api/current/index.html#scala.actors.Actor " >Scala</a >,
12- <a href =" http://www.haskell.org/haskellwiki/Applications_and_libraries/Concurrency_and_parallelism#Concurrent_Haskell " >Haskell</a >,
13- <a href =" http://blogs.msdn.com/b/dsyme/archive/2010/02/15/async-and-parallel-design-patterns-in-f-part-3-agents.aspx " >F#</a >,
14- <a href =" http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx " >C#</a >,
15- <a href =" http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html " >Java</a >,
16- and classic concurrency patterns.
17- </p >
18- <p >
19- The design goals of this gem are:
20- <ul >
21- <li >Be an 'unopinionated' toolbox that provides useful utilities without debating which is better or why</li >
22- <li >Remain free of external gem dependencies</li >
23- <li >Stay true to the spirit of the languages providing inspiration</li >
24- <li >But implement in a way that makes sense for Ruby</li >
25- <li >Keep the semantics as idiomatic Ruby as possible</li >
26- <li >Support features that make sense in Ruby</li >
27- <li >Exclude features that don't make sense in Ruby</li >
28- <li >Be small, lean, and loosely coupled</li >
29- </ul >
30- </p >
31- </td >
32- <td align =" right " valign =" top " >
33- <img src =" https://raw.githubusercontent.com/wiki/ruby-concurrency/concurrent-ruby/logo/concurrent-ruby-logo-300x300.png " />
34- </td >
35- </tr >
5+ <tr >
6+ <td align="left" valign="top">
7+ <p>
8+ Modern concurrency tools for Ruby. Inspired by
9+ <a href="http://www.erlang.org/doc/reference_manual/processes.html">Erlang</a>,
10+ <a href="http://clojure.org/concurrent_programming">Clojure</a>,
11+ <a href="http://www.scala-lang.org/api/current/index.html#scala.actors.Actor">Scala</a>,
12+ <a href="http://www.haskell.org/haskellwiki/Applications_and_libraries/Concurrency_and_parallelism#Concurrent_Haskell">Haskell</a>,
13+ <a href="http://blogs.msdn.com/b/dsyme/archive/2010/02/15/async-and-parallel-design-patterns-in-f-part-3-agents.aspx">F#</a>,
14+ <a href="http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx">C#</a>,
15+ <a href="http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html">Java</a>,
16+ and classic concurrency patterns.
17+ </p>
18+ <p>
19+ The design goals of this gem are:
20+ <ul>
21+ <li>Be an 'unopinionated' toolbox that provides useful utilities without debating which is better or why</li>
22+ <li>Remain free of external gem dependencies</li>
23+ <li>Stay true to the spirit of the languages providing inspiration</li>
24+ <li>But implement in a way that makes sense for Ruby</li>
25+ <li>Keep the semantics as idiomatic Ruby as possible</li>
26+ <li>Support features that make sense in Ruby</li>
27+ <li>Exclude features that don't make sense in Ruby</li>
28+ <li>Be small, lean, and loosely coupled</li>
29+ </ul>
30+ </p>
31+ </td>
32+ <td align="right" valign="top">
33+ <img src="https://raw.githubusercontent.com/wiki/ruby-concurrency/concurrent-ruby/logo/concurrent-ruby-logo-300x300.png"/>
34+ </td>
35+ </tr >
3636</table >
3737
38- ### Install
38+ ## Install
3939
4040``` shell
4141gem install concurrent-ruby
4242```
43+
4344or add the following line to Gemfile:
4445
4546``` ruby
4647gem ' concurrent-ruby'
4748```
49+
4850and run ` bundle install ` from your shell.
4951
50- * NOTE : There is an old gem from 2007 called "concurrent" that does not appear to be under active development. That isn't us. Please do not run* ` gem install concurrent ` * . It is not the droid you are looking for.*
52+ _ NOTE : There is an old gem from 2007 called "concurrent" that does not appear to be under active development. That isn't us. Please do not run* ` gem install concurrent ` * . It is not the droid you are looking for._
5153
5254## Features & Documentation
5355
5456Please see the [ Concurrent Ruby Wiki] ( https://github.com/ruby-concurrency/concurrent-ruby/wiki )
55- or the [ API documentation] ( http://rubydoc.info/github/ ruby-concurrency/concurrent-ruby/master/ frames )
57+ or the [ API documentation] ( http://ruby-concurrency.github.io /concurrent-ruby/frames.html ) )
5658for more information or join our [ mailing list] ( http://groups.google.com/group/concurrent-ruby ) .
5759
5860There are many concurrency abstractions in this library. These abstractions can be broadly categorized
@@ -74,6 +76,7 @@ into several general groups:
7476* Thread synchronization classes and algorithms including [ dataflow] ( https://github.com/ruby-concurrency/concurrent-ruby/wiki/Dataflow ) ,
7577 timeout, condition, countdown latch, dependency counter, and event
7678* Java-inspired [ thread pools] ( https://github.com/ruby-concurrency/concurrent-ruby/wiki/Thread%20Pools )
79+ * New fast light-weighted [ Actor model] ( http://ruby-concurrency.github.io/concurrent-ruby/frames.html#!Concurrent/Actress.html ) implementation.
7780* And many more...
7881
7982### Semantic Versioning
@@ -91,7 +94,7 @@ It should be fully compatible with any interpreter that is compliant with Ruby 1
9194Many more code examples can be found in the documentation for each class (linked above).
9295This one simple example shows some of the power of this gem.
9396
94- ``` ruby
97+ ``` ruby
9598require ' concurrent'
9699require ' thread' # for Queue
97100require ' open-uri' # for open(uri)
0 commit comments