hickory
quote
Our great sponsors
hickory | quote | |
---|---|---|
1 | 3 | |
146 | 1,202 | |
- | - | |
0.0 | 7.6 | |
almost 3 years ago | about 2 months ago | |
Python | Rust | |
MIT License | 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.
hickory
-
How to Send and Schedule Emails with Python
Hopefully you've got a cute little Shakespearean Email Bot working and now you're itching to schedule this bot to send you a quote every day at 9:00am. To accomplish this install hickory:
quote
-
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).
What are some alternatives?
cargo-expand - Subcommand to show result of macro expansion
python-dotenv - Reads key-value pairs from a .env file and can set them as environment variables. It helps in developing applications following the 12-factor principles.
proc-macro-workshop - Learn to write Rust procedural macros [Rust Latam conference, Montevideo Uruguay, March 2019]
Garbage-Collection - 🗑 Custom Home Assistant sensor for scheduling garbage collection (or other regularly re-occurring events - weekly on given days, semi-weekly or monthly)
Bytecode - A Rust proc-macro crate which derives functions to compile and parse back enums and structs to and from a bytecode representation
databay - Databay is a Python interface for scheduled data transfer. It facilitates transfer of (any) data from A to B, on a scheduled interval.
zoom-earlybird - Python bot that automatically signs in to Zoom using SSO (only supported domains) and attends a meeting schedule.
darling - A Rust proc-macro attribute parser
component-keycloak - Commodore Component for Keycloak
syn - Parser for Rust source code
syn-file-expand - Rust library to scan files and expand (make modules inline) multi-file crates source code as a single tree.
rust-fsm - Finite state machine framework for Rust with readable specifications