serde-repr
sccache
serde-repr | sccache | |
---|---|---|
3 | 74 | |
237 | 6,158 | |
0.4% | 1.9% | |
4.9 | 9.0 | |
15 days ago | 4 days ago | |
Rust | Rust | |
Apache License 2.0 | Apache License 2.0 |
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.
serde-repr
- Easily converts a struct into Vec<u8> and back.
-
Hey Rustaceans! Got an easy question? Ask here (21/2021)!
The other issue is that it looks like serde_repr will not generate correct code for #[repr(C)] enums as it appears to interpret the bit inside #[repr(...)] as an integer type: https://github.com/dtolnay/serde-repr/blob/master/src/lib.rs#L60
sccache
-
Ruff: Python linter and code formatter written in Rust
Compile times are still a bit much, but there are ways around it:
- The insanely long times are only for the initial build. Further builds are incremental and more tolerable.
- Compilation errors can be checked using 'cargo check'. It avoids the code generation step that's part of a build. I find myself doing it way more often than builds. So it's a time saver depending on how frequently you use it.
- You can extend the incremental build mentioned above using sccache [1]. At the minimum, it allows you to share the build cache between all your local projects. So it saves time if your projects or other builds share a lot of common libraries (that's very common in Rust, though). But sccache can go further by using online build caches (for example, using S3) that can be shared between hosts. Finally, sccache also supports distributed builds if you have a few machines sitting idle. (This is like distcc with extra features).
[1]: https://github.com/mozilla/sccache
-
One Year of Rust in Production
sccache can help with compile times:
https://github.com/mozilla/sccache
-
Improve Productivity with CMake and Compiler Cache Integration
One proven way to optimize build times is by using compiler cache programs such as ccache or sccache. These programs cache compilation results and reuse them, omitting subsequent compiler calls if the inputs have not changed.
-
Speeding up C++ build times
Use icecream or sccache. sccache supports distributed builds.
https://github.com/mozilla/sccache/blob/main/docs/Distribute...
-
Mozilla sccache: cache with cloud storage
Worth noting that the first commit in sccache git repository was in 2014 (https://github.com/mozilla/sccache/commit/115016e0a83b290dc2...). So I suppose that what "happened" happened waay back.
- Welcome to Apache OpenDAL
-
Target file are very huge and running out of storage on mac.
If you have lots of shared dependencies, maybe try sccache?
-
S3 Express Is All You Need
I'm going to set up sccache [0] to use it tomorrow. We use MSVC, so EFS is off the cards.
[0] https://github.com/mozilla/sccache/blob/main/docs/S3.md
- sccache
-
Serde has started shipping precompiled binaries with no way to opt out
I think the primary benefit of pre-built procmacros will be for build servers which don't use a persistent cache (like sccache), since they have to compile all dependencies every time. But IMO improved support for persistent caches would be a better investment compared to adding support for pre-built procmacros.
What are some alternatives?
log - Logging implementation for Rust
ccache - ccache – a fast compiler cache
bincode - A binary encoder / decoder implementation in Rust.
cache - Cache dependencies and build outputs in GitHub Actions
rust_serialization_benchmark - Benchmarks for rust serialization frameworks
icecream - Distributed compiler with a central scheduler to share build load