polyphony 0.99.3 → 0.99.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|