Skip to content

Commit eb6e6f7

Browse files
authored
Merge pull request #57 from extendr/release-post
040 release post
2 parents 713e246 + cc2b785 commit eb6e6f7

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed
14.6 KB
Loading
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
title: "rextendr 0.4"
3+
description: |
4+
A new version of rextendr has arrived.
5+
author: Blake Vernon
6+
date: "2025/08/26"
7+
image: images/extendr-release-040.png
8+
image-alt: "The rextendr logo, letter R in middle of gears."
9+
categories: [Release, Updates]
10+
---
11+
12+
## TL; DR
13+
14+
- New domain! Say hi to extendr.rs 👋🏼
15+
- [Positron & VS Code Support 👩🏽‍💻](#positron)
16+
- [CRAN compatibility out of the box](#cran)
17+
- [WebR support 🕸️](#webr)
18+
19+
The extendr team is excited to announce the release of
20+
[rextendr](https://extendr.github.io/rextendr/dev) `0.4`, along with two
21+
follow-up patch releases, that bring significant improvements to the R package
22+
ecosystem for Rust integration. These include:
23+
24+
- enhanced CRAN compatibility,
25+
- improved developer experience,
26+
- WebR support,
27+
- and streamlined package scaffolding.
28+
29+
A great deal of work also went into re-factoring code to reduce package dependencies and
30+
improve the maintainability to ensure the long-term viability of the project.
31+
32+
::: callout-note
33+
## What is rextendr?
34+
35+
For those new to the project, rextendr is an R package similar to `usethis` and
36+
`devtools` for supporting development of Rust-powered R packages, with the Rust
37+
crate `extendr` handling most of the heavy lifting behind the scenes.
38+
:::
39+
40+
## WebR support{#webr}
41+
42+
A very exciting development in this release is **WebR compatibility out of the box**. All extendr-powered R packages are now compatible with [WebR](https://webr.r-wasm.org/latest/), meaning your packages can run in the browser without an R installation.
43+
44+
WebR support happens without any additional work on your part. Just update your build files with `use_extendr()` and permit rextendr to update your `Makevars{.win}.in`, files in `tools/`, `configure` scripts.
45+
46+
::: callout-tip
47+
## WebR for existing packages
48+
WebR support requires that `lto = true` in your release profile. This is handled for new packages, but not existing ones. Be sure to add it to your `Cargo.toml`.
49+
:::
50+
51+
52+
## CRAN compatibility{#cran}
53+
54+
The standout feature of the current release is found in rextendr's workhorse function `use_extendr()`, which now provides **CRAN-ready scaffolding out of the box**. All you need to do is vendor your Rust dependencies with `vendor_pkgs()` and you're ready for CRAN submission.
55+
56+
57+
## Positron & VS Code Support{#positron}
58+
59+
With [Positron](http://positron.posit.co/) coming out of beta, we've introduced `use_positron()` and `use_vscode()` to generate (or update) `.vscode/settings.json` tailored to Rust development in R packages.
60+
61+
When you run `use_extendr()`, it now automatically calls `use_vscode()` when VS Code or Positron is detected as your IDE, making the setup completely seamless.
62+
63+
## Enhanced Developer Tools
64+
65+
Release of 0.4.0 and its patches also comes with additional developer tooling:
66+
67+
- **Rust diagnostics**`rust_sitrep()` provides comprehensive Rust toolchain diagnostics and guides you through fixing any installation issues
68+
- **Dependency management**`use_crate()` makes adding Rust dependencies to your `Cargo.toml` as easy as `usethis::use_package()`
69+
- **MSRV support**`use_msrv()` helps specify the minimum supported Rust version for your package
70+
- **Metadata access**`read_cargo_metadata()` lets you fetch detailed project information from Cargo
71+
- **Eeasy dependency vendoring**`vendor_pkgs()` vendors and compresses your Rust dependencies for easy CRAN publication and offline installation
72+
73+
## A new extendr badge! {#badge}
74+
75+
The extendr community has grown quite a bit in the last two years, maybe as much
76+
as the codebase! First of all, we want to say **thank you** for being a part of the community!
77+
78+
We wanted to make sure that new developers could boast about
79+
their extendr-powered packages—and, if we're being honest, increase visibility
80+
for the project—by adding an extendr badge to their README files, which can
81+
now be done with `use_extendr_badge()`. This results in:
82+
83+
[![](https://img.shields.io/badge/extendr-%5E0.8.0-276DC2)](https://extendr.rs/extendr/extendr_api/)
84+
85+
If you're using extendr in your package, do us a solid and add the badge to your README! 🥺
86+
87+
88+
89+
## There's still more
90+
91+
Check out our recently updated [website](https://extendr.rs/) and
92+
documentation! For the full changelog see the [NEWS.md](https://github.com/extendr/rextendr/blob/main/NEWS.md).

0 commit comments

Comments
 (0)