Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →
Top 23 Concurrency Open-Source Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
burn
Burn is a new comprehensive dynamic Deep Learning Framework built using Rust with extreme flexibility, compute efficiency and portability as its primary goals.
-
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.
-
Akka.net
Canonical actor model implementation for .NET with local + distributed actors in C# and F#.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Yew is a framework for creating reliable and efficient web applications. Yew
We use Jest Framework for testing. Jest is not a dogma, and, of course, in its place can be any other test runner, such as Mocha or Ava. Let's focus on tests. I'll provide a short example because I don’t want to waste your time. You can find the full version here. It's crucial to read the comments in the code below. Let's go!
Swoole
Nice. The per element atomic locks rather than per collection is a neat optimization I wouldn't have thought of! After a decade+ of LMax Disruptor being a well publicized multicast circular queue. https://lmax-exchange.github.io/disruptor/
Project mention: Spark – A web micro framework for Java and Kotlin | news.ycombinator.com | 2024-02-10https://vertx.io/
It's actively maintained with full time developers, performant, supports Kotlin out of the box, and has more features?
Kotlin also has a construct for asynchronous collections/streams. Kotlin's version of AsyncSequence is called a Flow. Just as Swift's AsyncSequence builds upon prior experience with RxSwift and Combine, Kotlin's Flow APIs build upon earlier stream/collection APIs in the JVM ecosystem: Java's RxJava, Java8 Streams, Project Reactor, and Scala's Akka.
BLoC Library - Learn how to use the BLoC pattern for state management
Project mention: Rayon: Data-race free parallelization of sequential computations in Rust | news.ycombinator.com | 2024-04-24
We should chat more about Reminders v2 - I want to learn more about what you'd like it to provide. Can you comment on the issue (https://github.com/dotnet/orleans/issues/7573)? If you'd like to see some of what is in the works, please message me on Discord and we can chat more about it (https://aka.ms/orleans/discord)
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.
Slightly OT:
Are ZeroMQ and NanoMQ still widely used (and recommended)?
https://github.com/zeromq/libzmq
https://github.com/nanomq/nanomq
It's a pity Go didn't have structured concurrency: https://vorpus.org/blog/notes-on-structured-concurrency-or-g...
There's a library for it: https://github.com/sourcegraph/conc
But this goes to one of the things I've been kind of banging on about languages, which is that if it's not in the language, or at least the standard library right at the beginning, sometimes it almost might as well not exist. Sometimes a new language can be valuable, even if it has no "new" language features, just to get a chance to reboot the standard library it has and push for patterns that older languages are theoretically capable of, but they just don't play well with any of the libraries in the language. Having it as a much-later 3rd party library just isn't good enough.
(In fact if I ever saw a new language start up and that was basically its pitch, I'd be very intrigued; it would show a lot of maturity in the language designer.)
Project mention: Top 10 Rusty Repositories for you to start your Open Source Journey | dev.to | 2023-12-199. Actix
Project mention: 3 years of fulltime Rust game development, and why we're leaving Rust behind | news.ycombinator.com | 2024-04-26You can use libtorch directly via `tch-rs`, and at present I'm porting over to Burn (see https://burn.dev) which appears incredibly promising. My impression is it's in a good place, if of course not close to the ecosystem of Python/C++. At very least I've gotten my nn models training and running without too much difficulty. (I'm moving to Burn for the thread safety - their `Tensor` impl is `Sync` - libtorch doesn't have such a guarantee.)
Burn has Candle as one of its backends, which I understand is also quite popular.
Project mention: Hyperbridge: Fast multi-producer, multi-consumer unbounded channel in Rust | news.ycombinator.com | 2024-02-09Crossbeam isn't async[0]. It can multiplex with itself (via the `select!` macro), but not with anything else.
[0]: https://github.com/crossbeam-rs/crossbeam/issues/896
Let’s say we need to traverse through thousands of files in our S3 Storage in a Ruby app. Let’s say we have a bunch of logs there that we need to read every day and process. If we just use a straightforward approach, like opening, reading, and processing every file one by one, our solution will work, but It will take a lot of time to process. So we need to improve the speed. Here ruby-concurrent gem is our helper https://github.com/ruby-concurrency/concurrent-ruby. Why do we need this gem? Because It’s simpler to use than Threads and this gem has a lot more features in It. In this article, we will use Concurrent::Promises.future as the most common use of concurrent code. Because reading a file from S3 is an IO operation, we can get a huge benefit in speed if we gonna use concurrent code doing HTTP requests. Remember that concurrency will not give you speed improvements if in every Promise or Thread you will do any calculations. Because of Ruby GIL, every thread will be blocked until calculations are finished.
akka.net actors. Actors all the way! https://getakka.net
Concurrency related posts
-
Lightning Fast Multicast Ring Buffer
-
Concurrent-ruby (async) S3 files download
-
Ruby class pattern to work with API requests with built-in async approach
-
A more natural API for JavaScript generators
-
Rayon: Data-race free parallelization of sequential computations in Rust
-
How to Build a Robust Web Scraper with Laravel: and Catch 'Em All
-
The Case of a Leaky Goroutine
-
A note from our sponsor - InfluxDB
www.influxdata.com | 20 May 2024
Index
What are some of the best open-source Concurrency projects? This list will help you:
Project | Stars | |
---|---|---|
1 | yew | 29,997 |
2 | ava | 20,632 |
3 | Swoole | 18,251 |
4 | Disruptor | 17,056 |
5 | Vert.x | 14,100 |
6 | Akka | 12,936 |
7 | bloc | 11,448 |
8 | rayon | 10,325 |
9 | Orleans | 9,868 |
10 | Taskflow | 9,608 |
11 | ZeroMQ | 9,322 |
12 | moodycamel | 8,899 |
13 | system_design | 8,655 |
14 | conc | 8,463 |
15 | actix | 8,405 |
16 | yazi | 9,023 |
17 | Android-RxJava | 7,549 |
18 | burn | 7,223 |
19 | crossbeam | 6,882 |
20 | Concurrent Ruby | 5,631 |
21 | RxGo | 4,866 |
22 | Akka.net | 4,627 |
23 | promise-fun | 4,597 |
Sponsored