-
Notifications
You must be signed in to change notification settings - Fork 8
Past ideas (~2020) Ideas for Async
Async is a new framework for Ruby which uses Fibers to improve concurrency.
We would like to add support for the server-timing
trailer.
- Prerequisites: Understand HTTP/1 and HTTP/2 protocol.
- Programming areas include: Ruby.
- Estimated difficulty level: medium-high
- Potential mentors: @ioquatix
Investigate and implement the RESP3
protocol and expand the interface where required.
- Prerequisites: Understand Redis protocol.
- Programming areas include: Ruby.
- Estimated difficulty level: medium-high
- Potential mentors: @ioquatix
It would be great to take the existing work done in these gems and rework them into async.
- Prerequisites: Understand file notification systems and system event mechanisms.
- Programming areas include: Ruby, C.
- Estimated difficulty level: medium
- Potential mentors: @ioquatix
Async and related projects are getting more popular. However, documentation is something that is suffering as the code grows. We need improved documentation, including translations to other languages.
In addition, translating blog posts and examples into different languages enables a diverse set of users to understand and use the tools.
- Prerequisites: Good communication skills, the ability to speak more than one language.
- Programming areas include: Ruby, C.
- Estimated difficulty level: medium
- Potential mentors: @ioquatix
Ruby has existing tooling for code analysis and bug detection. We would like to extend RuboCop with the ability to detect incorrect usage of Mutex and other threading constructs.
- Prerequisites: Basic understanding of mutex and related data structures. Experience with RuboCop a plus.
- Programming areas include: Ruby, Parallelism.
- Estimated difficulty level: medium
- Potential mentors: @ioquatix
Ruby has existing tooling for testing code (e.g. RSpec). We would like to extend RSpec with the ability to detect potential concurrency issues including potentially:
expect do
# ... user code ...
end.to_not be_blocking
expect do
# ... user code ...
end.to_not modify_global_state
- Prerequisites: Basic understanding of mutability and concurrency. Experience extending CRuby a plus.
- Programming areas include: Ruby, C.
- Estimated difficulty level: medium-high
- Potential mentors: @ioquatix