compact_str
DIPs
compact_str | DIPs | |
---|---|---|
16 | 10 | |
541 | 156 | |
- | 0.6% | |
7.6 | 5.8 | |
3 days ago | 7 days ago | |
Rust | D | |
MIT License | Creative Commons Zero v1.0 Universal |
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.
compact_str
-
Announcing `compact_str` version 0.7! A small string optimization for Rust
Not that I know of! As part of compact_str v0.6 we tried to make the API of CompactString 1:1 with String, inevitably we missed a few (1, 2, 3) things but they were fixed in this latest release.
... and more! Please see the CHANGELOG for more detail
-
Is there a type like `std::num::NonZero*` but for other values than zero?
(See the compact_str implementation as an example.)
-
Announcing `compact_str` version 0.6! A small string optimization for Rust
Along with performance improvements, this release includes implementing multiple methods for CompactString, to bring its API nearly 1:1 with String. The only exception being methods that don't have a direct port for a small string optimization, e.g. into_bytes, or methods that aren't yet stable. A full change log can be found here.
- What is Box and how is it different from String in Rust?
-
Announcing `compact_str` version 0.5! A small string optimization for Rust
Doing this has been on the back of my mind for a while, just filed an issue to track this! #119
-
Announcing `compact_str` version 0.4! A small string optimization for Rust
There's a draft pr for this.
-
Why is it so hard to get traction learning rust?
Here're a few projects I considered interesting (including my own project) and relatively easy to participate: - pushgen Push-style design pattern for processing of ranges and data-streams. - compact_str A memory efficient immutable string type that can store up to 24* bytes on the stack - openssh-rs Scriptable SSH through OpenSSH in Rust - pegasus A multi-node parametrized command runner with a focus on simplicity - concurrent_arena Container that can have elements insert/removed concurrently and uses a 'u32' as key.
-
Inlined string (in ~200 LOC)
I wrote something similar to compact_str, but it is: - a Box when on the heap - (so clone is O(n)) - (but still immutable) - 2 usizes in size
-
Is there any other programming language aside from C++ that has move semantics feature available?
Here you go: https://github.com/ParkMyCar/compact_str
DIPs
-
The OpenD Programming Language (fork of D)
The reference compiler, DMD, is open source: https://github.com/dlang/dmd
But they don't accept just any Pull Request or features the community submits, understandably. There's a process called DIP for language improvements: https://github.com/dlang/DIPs/blob/master/DIPs/README.md
However, by some accounts, it's really hard to get anything through.
Given D already has so many feature, I find that to be a good thing , to be honest, by not everyone agrees, of course.
-
Mojo 🔥: A programming language for all AI developers
Borrow checking does not require lifetime annotations. D is a precedent there. Look at DIP25 and DIP1000.
-
Carbon Language: An experimental successor to C++
There's no "nogc" containers in phobos, or allocators, or an idiomatic way to do safe manual memory management. It expects you to do it the C way. It's also impossible to implement some things because of how D does moving. There's a DIP in the works to change how moving works, but it's overly complicated and bound to introduce even more bugs. https://github.com/dlang/DIPs/blob/master/DIPs/DIP1040.md
-
Is there any other programming language aside from C++ that has move semantics feature available?
D Is drafting up move semantics to interface better with C++. Although they're going a bit the Rust way in the current proposal. D has tried a couple of other strategies, but unique pointers and C++ interoperability kind of forced the hand of Walter Bright.
- Is D backwards compatible?
- PSC #025 2021-06-18 minutes - massive update on RFC processes and RFCs in flight
- Three situations regarding memory
- DIP1040: Copying, Moving, and Forwarding
-
Things that you miss from your previous language?
String interpolation is coming: https://github.com/dlang/DIPs/blob/master/DIPs/DIP1036.md
- System variables: Protecting data for memory safety in unsafe code
What are some alternatives?
smartstring - Compact inlined strings for Rust.
crubit
smol_str
peps - Python Enhancement Proposals
openssh - Scriptable SSH through OpenSSH in Rust
intellij-dlanguage - Intellij Plugin for the D Programming Language
zero-copy-pads - Padding/aligning values without heap allocation
proposals - ✍️ Tracking the status of Babel's implementation of TC39 proposals (may be out of date)
rust - Empowering everyone to build reliable and efficient software.
carbon-lang - Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)
perf-ninja-rs - Rust port of dendibakh/perf-ninja - an online course where you can learn and master the skill of low-level performance analysis and tuning.
Juleps - Julia Enhancement Proposals