crossbeam
rust
Our great sponsors
crossbeam | rust | |
---|---|---|
33 | 2152 | |
5,755 | 76,857 | |
3.2% | 2.5% | |
8.9 | 10.0 | |
8 days ago | 4 days ago | |
Rust | Rust | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
crossbeam
- This implementation is actually unsafe since we don't check if the index is in-bounds. But this is fine since this is only used internally.
-
Rust vs Go
Deadlocks and leaks are easy as other languages.
- Help with package licensing issues
-
Kanal: Channels 80x faster than the standard library!
Ouch, didn’t know about https://github.com/crossbeam-rs/crossbeam/issues/821, thanks for pointing that out, that’s a big update for me!
-
Hey Rustaceans! Got a question? Ask here! (21/2022)!
The last option I can think of is using two threads (like above) and epoch GC instead of a lock (i.e. using crossbeam-epoch). But I don't have enough experience with this to say anything about it.
-
what are the resources for writing multi threaded programs in rust
You should definitely look at the Rayon crate. After I figured that out, my productivity vs multi threaded C was exponentially better (literally did many days of equivalent C work in less than an hour). Rayon is focused on data processing, other multi threaded stuff can benefit from other crates like crossbeam (Channels, scoped threads), and tokio (async networking).
- Audio Libraries Considered Challenging
-
Hacker News top posts: Apr 17, 2022
Crossbeam – Tools for concurrent programming in Rust\ (14 comments)
- crossbeam - Tools for concurrent programming in Rust
- Crossbeam – Tools for concurrent programming in Rust
rust
-
Rust’s Ugly Syntax
Glad you like it 🙂 https://github.com/rust-lang/rust/pull/58530
-
Rust's Ugly Syntax
It's directly responsible for Rust needing the "turbofish" syntax to pin down generic return types as in
let foo.iter().map(|x| x*2).collect::>()
If they'd used something like [T] for generics, then there'd be no collision with the < and > operators needing disambiguation in some contexts.
They even have a Book of Mozilla-esque entry in their test suite named "Bastion of the Turbofish" to pin down an example of the problem case, complete with
https://github.com/rust-lang/rust/blob/43192ca3d72ed0ca42ba9...
To my knowledge, this closure syntax was a direct Ruby influence mainly because this syntax was also supposed to work like Ruby blocks: `array.each |e| { ... }`. Originally owned and shared closures had a different syntax (`fn~() { ... }` or `[email protected]() { ... }`)---this was back when Rust had a built-in shared reference, roughly equivalent to `std::sync::Arc` in the modern Rust---and it was pointed out that they should be harmonized at some point [1]. It was that time when people realized that then-loop-only syntax can be generalized into any closures, and this semi-decision got stuck even after the "internal" iterator that accepts a closure has long gone.
-
Modulo of Negative Numbers
I found only this issue https://github.com/rust-lang/rust/issues/87970 but has no details
Here's the discussion that lead to the implementation of those functions, from more recent to least recent,
* the tracking issue https://github.com/rust-lang/rust/issues/49048
* the RFC https://github.com/rust-lang/rfcs/pull/2169
* the internals discussion https://internals.rust-lang.org/t/mathematical-modulo-operat...
It's baffling that Rust got this wrong..
-
Memory safety is the new black
If rust has no runtime, maybe you could enlighten us as to what this is: https://github.com/rust-lang/rust/blob/master/library/std/src/rt.rs
-
Next Rust Compiler
I don't want to list specific contributors here. We often have no information on why people left the project - there might be all sorts of personal factors. I will say that my broader sentiment - that Rust's momentum has slowed, that it's not delivering on its commitments in a timely way, that there are concerns about it's ability to deliver in future - has been expressed publicly by high profile past core contributors:
https://github.com/rust-lang/rust/pull/96709#issuecomment-11...
I don't think Rust should tackle any ambitious project to rewrite the compiler while these basic concerns remain.
-
Announcing Rust 1.67.0
Commit counts regularly fluctuate: https://github.com/rust-lang/rust/graphs/contributors
Potentially it is due to this layout optimization and a missing repr(C) somewhere in your code or a dependency. For example, here is an is a related issue in luminance.
rav1e is quite well maintained, the fix for the lint was merged days after the ilog PR merged. But the 0.5.1 release of rav1e was one year ago, in December 2021, while the ilog rename was end of August 2022. There hadn't been a release though of rav1e until end of November 2022, which was also a semver incompatible one. Users had only 2-ish months of time to get to the new rav1e version without experiencing breakage.
What are some alternatives?
carbon-lang - Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)
rayon - Rayon: A data parallelism library for Rust
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
Elixir - Elixir is a dynamic, functional language designed for building scalable and maintainable applications
rust-analyzer - A Rust compiler front-end for IDEs [Moved to: https://github.com/rust-lang/rust-analyzer]
Odin - Odin Programming Language
rust-threadpool - A very simple thread pool for parallel task execution
scala - Scala 2 compiler and standard library. For bugs, see scala/bug
mimalloc - mimalloc is a compact general purpose allocator with excellent performance.
go - The Go programming language