Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We are excited to present PL/Rust v1.0.0. Writing Postgres UDFs in Rust has never been easier (mostly because it hasn't been possible)!
PL/Rust is a loadable, trusted procedural language handler enabling developers to create PostgreSQL functions in the Rust programming language. Unlike other procedural languages, PL/Rust functions are not interpreted. Instead, the definition you supply to
CREATE FUNCTION ... LANGUAGE plrust
is wrapped in Rust, compiled to native machine code, and dynamically loaded.Many of the usual tradeoffs of compilation apply:
However, many other burdens of compiling native ("C") functions are removed. PL/Rust can transparently reload, recompile, and replace functions without additional prompting, as if it was any other procedural language. Documentation, while still under development, can be found here: https://tcdi.github.io/plrust/
Please feel free to open an issue if you have any additional questions!
Platform Support
Thanks Everyone!
We want to make sure to properly thank all the past (and hopefully future!) PL/Rust contributors. Without their work, PL/Rust wouldn't exist. Thank you! 🙏
Also, a huge thanks to TCDI for funding this work and putting together an absolutely outstanding team.
What's Changed Since v1.0.0-rc.1
plrustc
Lints'static
impl shenanigans by @thomcc in Add a lint for'static
impl shenanigans #265where_clauses_object_safety
lint by default by @thomcc in Enable thewhere_clauses_object_safety
lint by default #268early_error
to emit early errors by @thomcc in Useearly_error
to emit early errors #272Documentation
Miscellaneous Niceties
-Clink-args=-Wl,-undefined,dynamic_lookup
on macos by @thomcc in Only set-Clink-args=-Wl,-undefined,dynamic_lookup
on macos #273Full Changelog: v1.0.0-rc.1...v1.0.0