polyphony 0.99.3 → 0.99.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +3 -1
- data/README.md +1 -1
- data/docs/readme.md +102 -0
- data/lib/polyphony/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd44b14a67b4f5aedd2f46010ff0ca790072f7c5261c6b6c53b622667264cec9
|
4
|
+
data.tar.gz: 9bcc853cbbb8f03e4fc7370b957f5895d78f36fece297d130451d8fef37da782
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 226dc8b0f9d8b0599df1444b0f8c3dd99c8fad7484a7c6cf9d4cc25e136d25cce33c56632f3c0e823216e76f21ab2ff06ff4d629e67134592302b85b95967e00
|
7
|
+
data.tar.gz: c277e9f9ac12001b7b30584e97e67020b9cc6088525249386868a783f0e38a8c88fbaa852ec36246d28a44d7f4cb93c9aaffa7ddfb8c1bca8396f80b569a63ff
|
data/.yardopts
CHANGED
@@ -14,10 +14,12 @@
|
|
14
14
|
--exclude sequel.rb
|
15
15
|
--exclude event.c
|
16
16
|
--exclude backend.+\.c
|
17
|
-
--load ./docs/link_rewriter.rb
|
17
|
+
# --load ./docs/link_rewriter.rb
|
18
|
+
-r docs/readme.md
|
18
19
|
./lib
|
19
20
|
./ext/polyphony
|
20
21
|
-
|
22
|
+
docs/readme.md
|
21
23
|
docs/overview.md
|
22
24
|
docs/tutorial.md
|
23
25
|
docs/faq.md
|
data/README.md
CHANGED
data/docs/readme.md
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
# @title README
|
2
|
+
|
3
|
+
<img src="https://github.com/digital-fabric/polyphony/raw/master/assets/polyphony-logo.png">
|
4
|
+
|
5
|
+
# Polyphony: Fine-Grained Concurrency for Ruby
|
6
|
+
|
7
|
+
<a href="http://rubygems.org/gems/polyphony">
|
8
|
+
<img src="https://badge.fury.io/rb/polyphony.svg" alt="Ruby gem">
|
9
|
+
</a>
|
10
|
+
<a href="https://github.com/digital-fabric/polyphony/actions?query=workflow%3ATests">
|
11
|
+
<img src="https://github.com/digital-fabric/polyphony/workflows/Tests/badge.svg" alt="Tests">
|
12
|
+
</a>
|
13
|
+
<a href="https://github.com/digital-fabric/polyphony/blob/master/LICENSE">
|
14
|
+
<img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT License">
|
15
|
+
</a>
|
16
|
+
|
17
|
+
> Polyphony \| pəˈlɪf\(ə\)ni \|
|
18
|
+
>
|
19
|
+
> 1. _Music_ the style of simultaneously combining a number of parts, each
|
20
|
+
> forming an individual melody and harmonizing with each other.
|
21
|
+
>
|
22
|
+
> 2. _Programming_ a Ruby gem for concurrent programming focusing on performance
|
23
|
+
> and developer happiness.
|
24
|
+
|
25
|
+
## What is Polyphony?
|
26
|
+
|
27
|
+
Polyphony is a library for building concurrent applications in Ruby. Polyphony
|
28
|
+
harnesses the power of [Ruby fibers](https://ruby-doc.org/core-2.5.1/Fiber.html)
|
29
|
+
to provide a cooperative, sequential coroutine-based concurrency model. Under
|
30
|
+
the hood, Polyphony uses
|
31
|
+
[io_uring](https://unixism.net/loti/what_is_io_uring.html) or
|
32
|
+
[libev](https://github.com/enki/libev) to maximize I/O performance.
|
33
|
+
|
34
|
+
## Features
|
35
|
+
|
36
|
+
* Co-operative scheduling of concurrent tasks using Ruby fibers.
|
37
|
+
* High-performance event reactor for handling I/O events and timers.
|
38
|
+
* Natural, sequential programming style that makes it easy to reason about
|
39
|
+
concurrent code.
|
40
|
+
* Abstractions and constructs for controlling the execution of concurrent code:
|
41
|
+
supervisors, cancel scopes, throttling, resource pools etc.
|
42
|
+
* Code can use native networking classes and libraries, growing support for
|
43
|
+
third-party gems such as `pg` and `redis`.
|
44
|
+
* Use stdlib classes such as `TCPServer`, `TCPSocket` and
|
45
|
+
`OpenSSL::SSL::SSLSocket`.
|
46
|
+
* Competitive performance and scalability characteristics, in terms of both
|
47
|
+
throughput and memory consumption.
|
48
|
+
|
49
|
+
## Installing
|
50
|
+
|
51
|
+
### System Requirements
|
52
|
+
|
53
|
+
In order to use Polyphony you need to have:
|
54
|
+
|
55
|
+
- Linux or MacOS (support for Windows will come at a later stage)
|
56
|
+
- Ruby (MRI) 3.0 or newer
|
57
|
+
|
58
|
+
### Installing the Polyphony Gem
|
59
|
+
|
60
|
+
Add this line to your application's Gemfile:
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
gem 'polyphony'
|
64
|
+
```
|
65
|
+
|
66
|
+
And then execute:
|
67
|
+
|
68
|
+
```bash
|
69
|
+
$ bundle
|
70
|
+
```
|
71
|
+
|
72
|
+
Or install it yourself as:
|
73
|
+
|
74
|
+
```bash
|
75
|
+
$ gem install polyphony
|
76
|
+
```
|
77
|
+
|
78
|
+
## Usage
|
79
|
+
|
80
|
+
- {file:/docs/overview.md Overview}
|
81
|
+
- {file:/docs/tutorial.md Tutorial}
|
82
|
+
- {file:/docs/faq.md FAQ}
|
83
|
+
|
84
|
+
## Technical Discussion
|
85
|
+
|
86
|
+
- {file:/docs/concurrency.md Concurrency the Easy Way}
|
87
|
+
- {file:/docs/fiber-scheduling.md How Fibers are Scheduled}
|
88
|
+
- {file:/docs/exception-handling.md Exception Handling}
|
89
|
+
- {file:/docs/extending.md Extending Polyphony}
|
90
|
+
- {file:/docs/design-principles.md Polyphony's Design}
|
91
|
+
|
92
|
+
## Examples
|
93
|
+
|
94
|
+
For examples of specific use cases you can consult the [bundled
|
95
|
+
examples](https://github.com/digital-fabric/polyphony/tree/master/examples) in
|
96
|
+
Polyphony's GitHub repository.
|
97
|
+
|
98
|
+
## Contributing to Polyphony
|
99
|
+
|
100
|
+
Issues and pull requests will be gladly accepted. Please use the [Polyphony git
|
101
|
+
repository](https://github.com/digital-fabric/polyphony) as your primary point
|
102
|
+
of departure for contributing.
|
data/lib/polyphony/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: polyphony
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.99.
|
4
|
+
version: 0.99.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|
@@ -164,6 +164,7 @@ files:
|
|
164
164
|
- docs/link_rewriter.rb
|
165
165
|
- docs/main-concepts/index.md
|
166
166
|
- docs/overview.md
|
167
|
+
- docs/readme.md
|
167
168
|
- docs/tutorial.md
|
168
169
|
- docs/whats-new.md
|
169
170
|
- examples/adapters/pg_client.rb
|