Top 23 Concurrency Open-Source Projects
Rust / Wasm framework for building client web appsProject mention: Hmm | reddit.com/r/ProgrammerHumor | 2022-08-11
Node.js test runner that lets you develop with confidence 🚀Project mention: Try refactoring this | reddit.com/r/node | 2022-07-25
I'm using AVA for testing and that detects the module declaration and works just fine running ESM tests.
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
🚀 Coroutine-based concurrency library for PHPProject mention: Why is Apache clinging to OpenOffice's corpse? | news.ycombinator.com | 2022-06-22
> I tend to install FOSS because imo they are more "future-proof", but some of them are developed by companies (e.g., Fedora Linux) and that makes me wonder if they're truly future-proof.
The story of CentOS should be telling that, no, many pieces of software that are backed by a company will not be future-proof and will probably experience certain changes as a consequence of that, be it being transformed to better fit corporate goals (CentOS Stream), or being retired eventually so the company may focus on something else (Atom), or will just be left to slowly rot over time as happens with most code (OpenOffice).
Then again, it's not like open source projects are that future proof or safe from "drama" either - for example, the Lubuntu project has 2 homepages for no reason: the official one at https://lubuntu.me/ and some other one that serves old versions and is not trusted by my ad blocking solution https://lubuntu.net/
There are also cases, when open source projects experience fragmentation like happened with Gogs https://gogs.io/ and Gitea https://gitea.io/en-us/ and sometimes there are cases where particular individuals simply cannot work together and as a consequence pretty much the same happens, as was the case with Swoole and Open Swoole: https://github.com/swoole/swoole-src/issues/4434
Treat most pieces of software that you use as if they might not be there in a year.
High Performance Inter-Thread Messaging LibraryProject mention: GoQueue, A Flexible Queue System for Go | reddit.com/r/golang | 2022-08-09
it is based on the LMAX disruptor pattern https://lmax-exchange.github.io/disruptor/
Vert.x is a tool-kit for building reactive applications on the JVMProject mention: Choose the right Java runtime for the job (2020, Quarkus vs Open Liberty vs traditional application server) | reddit.com/r/java | 2022-08-07
For performance and good support for asynchronous programming, I think the best option is Vert.x. It's the fastest Java option by far according to TechEmpower ranking.
Build highly concurrent, distributed, and resilient message-driven applications on the JVMProject mention: I need to create an API, but I don't know what framework to use. What would you choose, of you were me, and scalability is a quite important factor? | reddit.com/r/Backend | 2022-07-31
However, if you really expect a lot of users (especially concurrent ones) to use your API, you should delve into the world of reactive programming. Use tools like RxJS (JS/TS) or Project Reactor (Java) in such a case, preferably in combination with a broker like Kafka or RabbitMQ. R2DBC is also great for a data store. Then of course if you want to go one step further, there also exists the less popular but very interesting Actor model which Akka easily has ported into Java.
A predictable state management library that helps implement the BLoC design patternProject mention: Is excessive use of setState code-smell / anti-pattern ? | reddit.com/r/FlutterDev | 2022-08-08
Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.
Cloud Native application framework for .NETProject mention: How to achieve “singleton hosted service” | reddit.com/r/dotnet | 2022-07-28
ZeroMQ core engine in C++, implements ZMTP/3.1Project mention: What they don't teach you about sockets | news.ycombinator.com | 2022-07-26
I think the situation is more subtle than the poster admits.
No, ZeroMQ and successors do not tell you about socket state. You can't detect disconnection or reconnection. But then if a TCP connection fails in some way that does not lead to disconnection (packets getting dropped, remote machine powers down), it can't possibly tell you about that either, but you still need to deal with it. So in any case, you need some sort of application-level error detection and recovery; you need heartbeats, and serial numbers in messages, and a protocol for explicitly restarting a connection and performing the initial handshake. And once you have that, explicit connection events from ZeroMQ are much less important.
Admittedly, given that this is a TCP transport, reporting reconnections would still be useful, because TCP won't ever drop messages from the interior of a sequence itself (if it delivers 15, it has delivered 1 - 14 already), so you shouldn't need the serial numbers.
And if it's really not possible to detect authentication failures, than that seems rubbish. And it seems that is indeed the case: https://github.com/zeromq/libzmq/issues/3505
Preparation links and resources for system design questionsProject mention: Comprehensive list of resources to prepare for job and overview of experience, compensation, and startup equity offers (currently in Bay Area - most companies are HQ'd in Bay Area, but positions are remote) | reddit.com/r/cscareerquestions | 2022-03-11
Actor framework for Rust.Project mention: What programming languages are most used for creating advanced math-related software/simulations? | reddit.com/r/math | 2022-05-17
Rust is also another possibility: it's basically C++ but more modern with added features and safety. It can be tricky to write mathematical stuff in it, because you may not care too much about all the safety concerns Rust forces you to handle, but it can be useful to catch bugs ahead of times. Sadly, Rust seems to have no library for running programs on clusters of PCs, except maybe this one, which takes the Actor model implemented by Actix and runs it on a cluster. I don't know how tricky it is to use the Actor model for a scientific simulation, tho.
A General-purpose Parallel and Heterogeneous Task Programming SystemProject mention: Airflow's Problem | news.ycombinator.com | 2022-08-02
Rayon: A data parallelism library for RustProject mention: How to effectively multithread in a piped program using Rust? | reddit.com/r/rust | 2022-08-02
Have you tried rayon? It’s one of my goto library when dealing with multithreading on independent data.
A fast multi-producer, multi-consumer lock-free concurrent queue for C++11Project mention: Professional Usernames | reddit.com/r/learnprogramming | 2022-08-05
Other than that... if your stuff is good, that's a much better signal than a professional username. I've seen a lot of decently unprofessional usernames out there that get taken pretty seriously because of the good work behind them. My recent favorite is "moodycamel" who authored a great concurrent queue library in C++.
In a sense the GIL (or actually GVL as it's called in current ruby versions) has already been removed for ruby.
It's only the original MRI Ruby that still has it several over Ruby implementations already removed it. e.g. JRuby.
Concurrent-Ruby is probably a good place to start if you want to work with GVL free ruby on JRuby. It's quite well supported and is currently used by Rails.
If you just want async or non-blocking IO I'd take a look at the Async Gem. It looks pretty solid in Ruby > 3.0 and it's been invited by Matz to be part of the stdlib, which I think is a pretty good endorsement.
For MRI itself I don't think it's likely they'll ever remove the GVL. Ractors are probably a better solution for CPU concurrency in the long run, although I think they're pretty experimental currently.
Tools for concurrent programming in RustProject mention: Rust multithreaded vector. | reddit.com/r/rust | 2022-08-06
Appending to a data structure across multiple threads is hard, because there's contention for the point where the appending happens. There are good ways to solve this, of course, depending on what exactly you're trying to accomplish. Most of those things end up looking like thread-safe queues, and that's what MPSC channels and the like are built on. Crossbeam has several different high-performance solutions to this class of problem.
Fibers, Channels and Actors for the JVM (by puniverse)
Reactive Extensions for the Go language.Project mention: A simple library to run Go loops in parallel | reddit.com/r/golang | 2022-03-31
See also this library - https://github.com/ReactiveX/RxGo
EventMachine: fast, simple event-processing library for Ruby programsProject mention: Newb here: have you written your own web server? Seeking advice | reddit.com/r/ruby | 2022-06-18
Maybe check out EventMachine. You can roll your own using sockets if you don't want to use a library.
Port of Akka actors for .NETProject mention: Microsoft RulesEngine. Feedback from those that have used it in enterprise environments | reddit.com/r/dotnet | 2022-07-02
This project is also what ultimately led to the creation of Akka.NET - I wrote an overview on how our application was built here: https://aaronstannard.com/markedup-akkadotnet/
A Haskell library that simplifies access to remote data, such as databases or web-based services.Project mention: 11 Companies That Use Haskell in Production | dev.to | 2022-05-04
Haxl, a framework for efficient and concise data fetching.
The C++ parallel algorithms library.Project mention: A vision of a multi-threaded Emacs | reddit.com/r/emacs | 2022-05-20
Users should work with higher level primitives like tasks, parallel loops, asynchronous functions etc. Think TBB, Thrust, Taskflow, lparallel for CL, etc.
ArrayFire: a general purpose GPU library.Project mention: [D] Deep Learning Framework for C++. | reddit.com/r/MachineLearning | 2022-06-12
Low-overhead — not our goal, but Flashlight is on par with or outperforming most other ML/DL frameworks with its ArrayFire reference tensor implementation, especially on nonstandard setups where framework overhead matters
Concurrency related posts
Concurrency framework amphp has been installed nearly 27 million times in the last three years but I rarely hear it used in production maybe reason is my location. Do you use it for production?What kind of projects?
1 project | reddit.com/r/PHP | 11 Aug 2022
Async/await makes me want to cry
2 projects | reddit.com/r/ProgrammerHumor | 7 Aug 2022
Rust multithreaded vector.
1 project | reddit.com/r/rust | 6 Aug 2022
1 project | reddit.com/r/learnprogramming | 5 Aug 2022
How to deal with many threads at the same time?
3 projects | reddit.com/r/Clojure | 1 Aug 2022
Massive widespread malware attack on GitHub
4 projects | reddit.com/r/programming | 3 Aug 2022
How to effectively multithread in a piped program using Rust?
2 projects | reddit.com/r/rust | 2 Aug 2022
What are some of the best open-source Concurrency projects? This list will help you:
Are you hiring? Post a new remote job listing for free.