linkme
typetag
linkme | typetag | |
---|---|---|
5 | 9 | |
222 | 547 | |
- | - | |
7.2 | 5.8 | |
over 2 years ago | over 2 years ago | |
Rust | Rust | |
GNU General Public License v3.0 or later | 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.
linkme
-
Is there comptime reflection in Rust proc-macro?
You can make the code generated by your macro add to a distributed slice from the linkme crate and you can use values from that slice at compile time.
-
Match against function/symbol names
there was linkme which i think can be used for what you describe. from your perspective you get a slice and can put functions in it at link time with an attribute macro.
-
dtolnay/inventory got archived, is there an alternative ?
@dtolnay I noticed you just archived the repos for inventory, linkme, gflags, and typetag, which I assume implies a deprecation.
-
Is it possible to scan all structs/functions that have a specific #[macro] ?
An alternative to inventory which I find better for a lot of purposes: https://github.com/dtolnay/linkme
-
What's your favourite under-rated Rust crate and why?
I like dtolnay's inventory or linkme crates to register items in a central list, just using decentralized annotations.
typetag
-
How to save a Box<dyn Trait> varialble to a local file?
The error message is pretty clear: this behavior has just not been implemented in typetag. There's even an open issue discussing why this is difficult to do.
- TypeTag/inventory/linkme are unarchived
-
Mapping between JSON and a list of structs which implement a trait
So something like this then? https://github.com/dtolnay/typetag
-
Ideal way of converting trait objects into other trait objects
My thought process is I will use Serde deserialization and typetag so that I can get a Vec> from the configuration file. Then I just have to figure out a way to construct Vec> from it and I will be set.
-
Question on the future of inventory, typetag, linkme, ctor, and related crates affected by #47384
I am using the typetag crate in a project. I have a use case that is very similar to the example laid out in the crate's documentation. Given the issue being discussed in #47384, it seems evident that using typetag would be a bad idea, for the time being.
-
dtolnay/inventory got archived, is there an alternative ?
@dtolnay I noticed you just archived the repos for inventory, linkme, gflags, and typetag, which I assume implies a deprecation.
-
Instantiate a struct from TypeId
You're right, you'd basically need some kind of hashmap, that gets initialized before the application starts. It might work with a similar approach like in typetag. typetag is a library that allows (de)serializing into/from dynamic objects. But it requires annotating each type you're planning to use with an attribute.
-
Untapped potential in Rust's type system
This allows me define methods on both borrowed (`Message<&str>`) and owned (`Message`) versions without issues. When remaining inside the process, the borrowed version is passed around and when sent across the process boundaries I can deserialize it to an owned version. This problem prevent me from using Typetag and I am still not sure how it should be solved.
[0]: https://github.com/dtolnay/typetag
-
Serialize arbitrary struct using traits?
ended up using https://github.com/dtolnay/typetag which uses this under the hood, so thanks!
What are some alternatives?
inventory - Typed distributed plugin registration
rust-djangohashers - A Rust port of the password primitives used in Django Project.
rfcs - RFCs for changes to Rust
schemafy - Crate for generating rust types from a json schema
redbpf - Rust library for building and running BPF/eBPF modules
fuzzcheck-rs - Modular, structure-aware, and feedback-driven fuzzing engine for Rust functions
parse-size - Parse byte size into integer accurately.
yayagram - Play nonograms/picross in your terminal
sonyflake-rs - 🃏 A distributed unique ID generator inspired by Twitter's Snowflake.
wg-allocators - Home of the Allocators working group: Paving a path for a standard set of allocator traits to be used in collections!
autocxx - Tool for safe ergonomic Rust/C++ interop driven from existing C++ headers