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. Learn more →
Top 23 Concurrency Open-Source Projects
Rust / Wasm framework for building client web apps
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.
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.
🚀 Coroutine-based concurrency library for PHPProject 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
High Performance Inter-Thread Messaging LibraryProject mention: Disruptor 4.0.0 Released | news.ycombinator.com | 2023-09-29
Vert.x is a tool-kit for building reactive applications on the JVMProject 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
Build highly concurrent, distributed, and resilient message-driven applications on the JVMProject 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.
A predictable state management library that helps implement the BLoC design patternProject mention: [Research] Your Flutter Stack | /r/FlutterDev | 2023-05-23
Architecture: Repository pattern as described on bloclibrary.dev
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.
Cloud Native application framework for .NETProject 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: A data parallelism library for RustProject 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.
A General-purpose Parallel and Heterogeneous Task Programming SystemProject 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 core engine in C++, implements ZMTP/3.1Project 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.
Preparation links and resources for system design questions
A fast multi-producer, multi-consumer lock-free concurrent queue for C++11
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.
Learning RxJava for Android by example
Tools for concurrent programming in RustProject 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.
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!
The C++ parallel algorithms library.
Reactive Extensions for the Go language.Project mention: RxGo: Reactive Extensions for the Go Language | news.ycombinator.com | 2023-08-19
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  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.
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: 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: fast, simple event-processing library for Ruby programsProject 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.
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.
Concurrency related posts
Disruptor 4.0.0 Released
1 project | news.ycombinator.com | 29 Sep 2023
Java21/Virtual threads, simplest the most boring scala http server stack ?
2 projects | /r/scala | 24 Sep 2023
Yazi: Fast terminal file manager based on async I/O
1 project | /r/hypeurls | 17 Sep 2023
Where can I read about how to write a safe API for unsafe code?
3 projects | /r/rust | 16 Sep 2023
Yazi: Fast terminal file manager based on async I/O
7 projects | news.ycombinator.com | 15 Sep 2023
Migrate the classic transport of pekko to Netty 4 without CVEs
1 project | /r/scala | 12 Sep 2023
Exploring concurrent rate limiters, mutexes, semaphores
2 projects | dev.to | 11 Sep 2023
A note from our sponsor - InfluxDB
www.influxdata.com | 29 Sep 2023
What are some of the best open-source Concurrency projects? This list will help you: