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 →
Quote Alternatives
Similar projects and alternatives to quote
-
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.
-
sccache
Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.
-
proc-macro-workshop
Learn to write Rust procedural macros  [Rust Latam conference, Montevideo Uruguay, March 2019]
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Bytecode
A Rust proc-macro crate which derives functions to compile and parse back enums and structs to and from a bytecode representation
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
quote reviews and mentions
-
C++ vs. Rust Build Times
A surprising source of slow compile times can be declarative macros in Rust [0].
I believe the core of the problem is that it has to reparse the code to pattern match for the macro.
One egregious patter is tt-munchers [1] where your macro is implemented recursively, requiring it to reparse the source on each call [2].
In one of my projects, someone decided to wrap a lot of core functions in simple macros (ie nt tt-munchers) to simplify the signatures. Unlike most macros which are used occasionally and have small inputs, this was a lot of input. When I refactored the code, I suspect dropping the macros is the reason CI times were cut in half and a clean `cargo check` went from 3s to 0.5s.
[0]: https://nnethercote.github.io/2022/04/12/how-to-speed-up-the...
[1]: https://veykril.github.io/tlborm/decl-macros/patterns/tt-mun...
[2]: https://github.com/dtolnay/quote/blob/31c3be473d0457e29c4f47...
-
Is generating code from JSON a good macro use case?
In the build.rs, call your code generation function (probably in a separate crate added in build-dependencies). This function will read your input files, and use something like quote to generate code.
-
Any good resources for learning Rust macros?
Or you can pair them with crates like syn, and quote for quasi-quoting, and then it's easy to make transformations on the AST of Rust input code. A lot of libraries do this for code-generation and hiding away a lot of complexity (example wasm-bindgen).
-
A note from our sponsor - InfluxDB
www.influxdata.com | 10 May 2024
Stats
dtolnay/quote is an open source project licensed under Apache License 2.0 which is an OSI approved license.
The primary programming language of quote is Rust.
Sponsored