Concurrency

Open-source projects categorized as Concurrency

Top 23 Concurrency Open-Source Projects

  • yew

    Rust / Wasm framework for building client web apps

    Project mention: Speeding up the JavaScript ecosystem – Polyfills gone rogue | news.ycombinator.com | 2023-09-21

    1. Not related to npm, but related to the web.

    2. True, but compilers are generally better than transpilers.

    3. Have you seen https://yew.rs/ ?

  • ava

    Node.js test runner that lets you develop with confidence 🚀

    Project mention: What Tools Are You Using to Test Your Code? | /r/node | 2023-08-12

    I've been looking at using japa or ava for web server testing but was curious what others were using and why.

  • SonarCloud

    Analyze your C and C++ projects with just one click.. SonarCloud, a cloud-based static analysis tool for your CI/CD workflows, offers a one-click automatic analysis of C and C++ projects hosted on GitHub. Zero configuration and free for open-source projects! Analyze free.

  • Swoole

    🚀 Coroutine-based concurrency library for PHP

    Project mention: Go with PHP (why it's still a good idea to use PHP in 2023) | /r/PHP | 2023-05-11

    It's a management UI where concerns were raised that it downloads from third party server. However this issue was handled very fast and code was removed: https://github.com/swoole/swoole-src/issues/4434

  • Disruptor

    High Performance Inter-Thread Messaging Library

    Project mention: Disruptor 4.0.0 Released | news.ycombinator.com | 2023-09-29
  • Vert.x

    Vert.x is a tool-kit for building reactive applications on the JVM

    Project mention: Reactive database access on the JVM | dev.to | 2023-07-13

    Hibernate Reactive integrates with Vert.x, but an extension allows to bridge to Project Reactor if wanted

  • Akka

    Build highly concurrent, distributed, and resilient message-driven applications on the JVM

    Project mention: What are the current hot topics in type theory and static analysis? | /r/ProgrammingLanguages | 2023-05-08

    First-class distributed and multicore computing. Swift has first-class “actors” and “distributed” methods. Unison, Erlang, and Elixir are built with distributed being one of the #1 concerns. Though first-class is not super common and I don't really expect it to be because usually libraries are enough (e.g. Scala has Akka and is used WIDELY for distributed); whereas something like linear types and typed effects, you can't emulate in a library.

  • bloc

    A predictable state management library that helps implement the BLoC design pattern

    Project mention: [Research] Your Flutter Stack | /r/FlutterDev | 2023-05-23

    Architecture: Repository pattern as described on bloclibrary.dev

  • Mergify

    Updating dependencies is time-consuming.. Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.

  • Orleans

    Cloud Native application framework for .NET

    Project mention: how to safely share state in multithreading applications | /r/dotnet | 2023-06-05

    for ADO scripts config, I ran the main, clustering, and persistence scripts but got runtime error lacking some migration sql object (don't remember the exact error message). But after some debug, I had to run this extra migration script which was not mentioned in that ADO config page.

  • rayon

    Rayon: A data parallelism library for Rust

    Project mention: Moving from Typescript and Langchain to Rust and Loops | dev.to | 2023-09-07

    In the quest for more efficient solutions, the ONNX runtime emerged as a beacon of performance. The decision to transition from Typescript to Rust was an unconventional yet pivotal one. Driven by Rust's robust parallel processing capabilities using Rayon and seamless integration with ONNX through the ort crate, Repo-Query unlocked a realm of unparalleled efficiency. The result? A transformation from sluggish processing to, I have to say it, blazing-fast performance.

  • Taskflow

    A General-purpose Parallel and Heterogeneous Task Programming System

    Project mention: Improvements of Clojure in his time | /r/Clojure | 2023-06-16

    For parallel programming nowadays, personally I reach for C++ Taskflow when I really care about performance, or a mix of core.async and running multiple load balanced instances when I’m doing more traditional web backend stuff in Clojure.

  • ZeroMQ

    ZeroMQ core engine in C++, implements ZMTP/3.1

    Project mention: A Modern High-Performance Open Source Message Queuing System | news.ycombinator.com | 2023-07-27

    Unlikely, but they seem to be different things altogether. BlazingMQ appears to be a traditional message queue (think ActiveMQ), with message peristence. ZeroMQ is more of a network middleware (think Tibco Rendezvous), and does not include persistence.

    BlazingMQ also appears to be more of a "platform" or "service" that an app can use (sort of like Oracle, say) -- ZeroMQ includes libraries that one can use to build an app, service or platform, but none is provided "out of the box".

    Which makes it harder to get started with ZeroMQ, since by definition every ZeroMQ app is essentially built "from scratch".

    If you're interested in ZeroMQ, you may want to check out OZ (https://github.com/nyfix/OZ), which is a Rendezvous-like platform that uses the OpenMAMA API (https://github.com/finos/OpenMAMA) and ZeroMQ (https://github.com/zeromq/libzmq) transport to provide a full-featured network middleware implementation. OZ has been used in our shop since 2020 handling approx 50MM high-value messages per day on our global FIX network.

  • system_design

    Preparation links and resources for system design questions

  • moodycamel

    A fast multi-producer, multi-consumer lock-free concurrent queue for C++11

  • actix

    Actor framework for Rust.

    Project mention: Keyword Generics Progress Report: February 2023 | Inside Rust Blog | /r/rust | 2023-02-23

    I think it's fairer to say the language got so much more powerful that there wasn't any point making actors a language feature when they can be built from existing orthogonal language features. You're probably looking for actix (not actix-web, just actix). There's also Lunatic built in Rust but supporting any actors compiled to WebAssembly.

  • Android-RxJava

    Learning RxJava for Android by example

  • crossbeam

    Tools for concurrent programming in Rust

    Project mention: Where can I read about how to write a safe API for unsafe code? | /r/rust | 2023-09-16

    Shooting from the hip, crossbeam might be a good candidate for understanding the thread safety aspects of Rust. I kind of feel like this is probably "too big" of a project if you're just learning, but I can't think of something smaller off the top of my head that would be suitable.

  • Concurrent Ruby

    Modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more. Inspired by Erlang, Clojure, Scala, Go, Java, JavaScript, and classic concurrency patterns.

    Project mention: Exploring concurrent rate limiters, mutexes, semaphores | dev.to | 2023-09-11

    After this, I took a look at the semaphore class in the popular library, concurrent-ruby to see how they implement it, and I learnt about something new: condition variables. And Ruby comes with this included!

  • Thrust

    The C++ parallel algorithms library.

  • RxGo

    Reactive Extensions for the Go language.

    Project mention: RxGo: Reactive Extensions for the Go Language | news.ycombinator.com | 2023-08-19
  • Quasar

    Fibers, Channels and Actors for the JVM (by puniverse)

    Project mention: Java 21 makes me like Java again | news.ycombinator.com | 2023-09-16

    Java 21 doesn't retrofit green threads though. Quasar [0] is a library that implemented fibers for Java and the main developer pron has joined the OpenJDK development team. All that was necessary for first party support is to make the JDK libraries yield when blocking.

    Adopting async isn't impossible at all, there is very little demand for it.

    [0] https://docs.paralleluniverse.co/quasar/

  • Akka.net

    Canonical actor model implementation for .NET with local + distributed actors in C# and F#.

    Project mention: .NET - iskustva s akka.net? | /r/programiranje | 2023-03-24
  • ArrayFire

    ArrayFire: a general purpose GPU library.

    Project mention: Learn WebGPU | news.ycombinator.com | 2023-04-27

    Loads of people have stated why easy GPU interfaces are difficult to create, but we solve many difficult things all the time.

    Ultimately I think CPUs are just satisfactory for the vast vast majority of workloads. Servers rarely come with any GPUs to speak of. The ecosystem around GPUs is unattractive. CPUs have SIMD instructions that can help. There are so many reasons not to use GPUs. By the time anyone seriously considers using GPUs they're, in my imagination, typically seriously starved for performance, and looking to control as much of the execution details as possible. GPU programmers don't want an automagic solution.

    So I think the demand for easy GPU interfaces is just very weak, and therefore no effort has taken off. The amount of work needed to make it as easy to use as CPUs is massive, and the only reason anyone would even attempt to take this on is to lock you in to expensive hardware (see CUDA).

    For a practical suggestion, have you taken a look at https://arrayfire.com/ ? It can run on both CUDA and OpenCL, and it has C++, Rust and Python bindings.

  • EventMachine

    EventMachine: fast, simple event-processing library for Ruby programs

    Project mention: I don’t get all the hate for PHP and at this point I am too afraid to ask. | /r/ProgrammerHumor | 2023-02-07

    You could also use something like EventMachine (In ruby), Twisted (Python), Node (JS) or ReactPHP (for PHP) that will use the language and turn it into a web application server, and then you'll have only one long running process that handle all your requests with shared memory. You could even use something more fancy like RoadRunner in the case of PHP.

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-09-29.

Concurrency related posts

Index

What are some of the best open-source Concurrency projects? This list will help you:

Project Stars
1 yew 28,533
2 ava 20,498
3 Swoole 17,999
4 Disruptor 16,385
5 Vert.x 13,771
6 Akka 12,788
7 bloc 10,871
8 Orleans 9,459
9 rayon 9,215
10 Taskflow 8,802
11 ZeroMQ 8,764
12 system_design 8,375
13 moodycamel 8,257
14 actix 8,061
15 Android-RxJava 7,559
16 crossbeam 6,351
17 Concurrent Ruby 5,537
18 Thrust 4,773
19 RxGo 4,709
20 Quasar 4,524
21 Akka.net 4,471
22 ArrayFire 4,227
23 EventMachine 4,226
Collect and Analyze Billions of Data Points in Real Time
Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
www.influxdata.com