Concurrency

Open-source projects categorized as Concurrency Edit details
Related topics: #Async #Golang #Go #CPP #Python

Top 23 Concurrency Open-Source Projects

  • yew

    Rust / Wasm framework for building client web apps

    Project mention: Hmm | reddit.com/r/ProgrammerHumor | 2022-08-11
  • ava

    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.

  • Scout APM

    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.

  • Swoole

    🚀 Coroutine-based concurrency library for PHP

    Project 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.

  • Disruptor

    High Performance Inter-Thread Messaging Library

    Project 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

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

    Project 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.

  • Akka

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

    Project 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.

  • bloc

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

    Project mention: Is excessive use of setState code-smell / anti-pattern ? | reddit.com/r/FlutterDev | 2022-08-08
  • SonarQube

    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.

  • Orleans

    Cloud Native application framework for .NET

    Project mention: How to achieve “singleton hosted service” | reddit.com/r/dotnet | 2022-07-28
  • ZeroMQ

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

    Project 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

  • system_design

    Preparation links and resources for system design questions

    Project 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
  • actix

    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.

  • Taskflow

    A General-purpose Parallel and Heterogeneous Task Programming System

    Project mention: Airflow's Problem | news.ycombinator.com | 2022-08-02
  • rayon

    Rayon: A data parallelism library for Rust

    Project 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.

  • moodycamel

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

    Project 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++.

  • 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: Ask HN: Any efforts to remove the GIL for Ruby? | news.ycombinator.com | 2022-06-15

    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[1] 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[2]. 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.

    1. https://github.com/ruby-concurrency/concurrent-ruby

  • crossbeam

    Tools for concurrent programming in Rust

    Project 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.

  • Quasar

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

  • RxGo

    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

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

    Project 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.

  • Akka.net

    Port of Akka actors for .NET

    Project 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/

  • haxl

    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.

  • Thrust

    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

    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

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 2022-08-11.

Concurrency related posts

Index

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

Project Stars
1 yew 23,045
2 ava 19,915
3 Swoole 17,511
4 Disruptor 15,088
5 Vert.x 13,079
6 Akka 12,341
7 bloc 9,341
8 Orleans 8,690
9 ZeroMQ 7,918
10 system_design 7,602
11 actix 7,279
12 Taskflow 7,114
13 rayon 7,030
14 moodycamel 7,006
15 Concurrent Ruby 5,356
16 crossbeam 5,111
17 Quasar 4,420
18 RxGo 4,263
19 EventMachine 4,180
20 Akka.net 4,148
21 haxl 4,101
22 Thrust 4,076
23 ArrayFire 3,871
Find remote jobs at our new job board 99remotejobs.com. There are 3 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com