Radicle 1.6.0 – 延红花
Radicle 1.6.0 – Amaryllis

原始链接: https://radicle.xyz/2026/01/14/radicle-1.6.0

## Radicle 1.6.0 “Amaryllis” 发布 Radicle 1.6.0,代号“Amaryllis”,现已发布,这是基于 Git 的点对点代码协作堆栈的重要更新。本次发布由 12 位开发者贡献了 153 次提交,重点在于改进 Radicle 网络的基础。 一个关键变化是将 `radicle-node` 迁移到使用 `mio` crate 进行网络 I/O,从而增强了跨平台兼容性——特别是首次实现了 Windows 上的构建。 此更新还将最低支持的 Rust 版本 (MSRV) 提升到 1.85。 用户体验改进包括由 `clap` crate 提供支持的全新命令行界面,提供更好的帮助输出和 shell 补全。 安全性也得到了解决,支持使用 systemd Credentials 管理密钥和密码短语。 启动过程已简化,优先使用 DNS 名称而非可能不受支持的 IP 地址和 Tor 连接。 用户可以通过 `curl -sSLf https://radicle.xyz/install | sh -s -- --no-modify-path --version=1.6.0` 进行安装。 遇到的问题,尤其是在 Windows 上,应通过 Rad issue 或 Zulip 报告。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Radicle 1.6.0 – Amaryllis (radicle.xyz) 13 分,zdw 发表于 1 小时前 | 隐藏 | 过去 | 收藏 | 1 条评论 petepete 14 分钟前 [–] 一开始还以为是关于我最喜欢的 CalDAV 服务器呢!https://radicale.org/ 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文

Radicle is a peer-to-peer, local-first code collaboration stack built on Git.


14.01.2026

Happy new year!

The Radicle team is excited to announce the release of Radicle 1.6.0 (4a5a51e6), code name Amaryllis. The Amaryllis flower blooms late winter and prefers to sit in the window (foreshadowing…)

First off, we would like to say sorry for the hiatus. As the team worked on some major refactoring, we ran into a snag before we could perform this release. Thankfully, we caught the bug, but as we were pushing up against holiday time, we put a hold on releasing. Now that we are on the other side of the new year, and sufficiently defrosted, we are back to making regular releases!

This release consists of massive 153 commits from 12 contributors. People really banded together to make a better release for Radicle this time round! Let’s give thanks to:

  • ade
  • icetan
  • defelo
  • Johannes K.
  • matthias
  • Richard L.
  • Sebastian M.
  • Yaroslav H.

Installation

curl -sSLf https://radicle.xyz/install | sh -s -- --no-modify-path --version=1.6.0

Migrating radicle-node to mio

The crates netservices, io-reactor, and popol were crucially valuable for implementing radicle-node. However, they are not ideal dependencies for ensuring long-term health of the network I/O layer:

  • popol is only intended to support Unix-like platforms, and support on other platforms, like Windows, is desired.
  • Even though io-reactor defines the trait reactor::poller::Poll to potentially support multiple I/O polling mechanisms, there is only one single implementation wrapping popol. Issues for other polling crates are open since 2023 without tangible progress: #10 for mio, #9 for polling, #8 for epoll. This suggests that it is not a high priority for the maintainers to integrate with other polling abstractions which might offer better cross-platform compatibility when compared to popol.
  • The trait reactor::poller::Poll can only be implemented for file descriptors which also implement std::os::fd::raw::AsRawFd, which is only implemented on Unix-like platforms and WASI. It is believed that this is leaked from popol as the only known implementation of the trait wraps it.
  • To benefit from network effects, it would be nice to see others maintaining crates that depend on io-reactor. However, according to crates.io, the only dependent is radicle-node (via netservices). Contrary to that, at the time of writing, mio has 494 dependents according to crates.io, and, notably, tokio, which has 30628 dependents on crates.io, is dependent on [mio]. We therefore think that even if mio is obsoleted, e.g. by a10 (which is based on io_uring on Linux and could potentially build on top of I/O rings on Windows) the people behind a large network of dependent projects are expected to come up with new ideas and solutions, that Radicle would then benefit from.
  • One downside of using mio is that it forces the use of mio::Token to identify sources (while a type that is Eq + Clone might be enough). Another downside is that it forces the use of the types in mio::net for sockets, which need to be converted to/from std::net if required. These distinctions are also noted by cloudhead. This is acceptable to the team, in order to leverage the benefits of a well-tested and cross-platform network I/O layer.

Building radicle-node on Windows

The efforts to migrate radicle-node to use mio, alongside changes that fixed path canonicalization and supporting Windows pipes, have allowed developers to build radicle-node on Windows.

We encourage users to try out Radicle on Windows by building from source. At the time of writing, there may be undiscovered issues, since this is a nascent time for radicle-node on Windows. Please report any issues you see via rad issue or on our Zulip.

Rust MSRV Update to 1.85

For those who are developing on top of the heartwood crates, it is important to note that the Minimum Supported Rust Version (MSRV) is now 1.85.

Argument Parsing via clap

rad now uses the clap crate for parsing its command-line arguments. This brings a brand new look to the help output for the rad CLI, and ensures that we do not miss documenting options when they are added. Note that this does affect error reporting, as they are now reported by clap when parsing fails.

Shell Completions

With the introduction of clap, this helped with the introduction of a command rad completion to emit shell completions for static information.

systemd Credentials for radicle-node

radicle-node now supports systemd Credentials (refer to https://systemd.io/CREDENTIALS for more information) to load: 1. The secret key, in addition to the commandline argument --secret (higher priority than the credential) and the configuration file (lower priority than the credential). The identifier of the credential is “xyz.radicle.node.secret”. 2. The optional passphrase for the secret key, in addition to the environment variable RAD_PASSPHRASE (lower priority than the credential). The identifier of the credential is “xyz.radicle.node.passphrase”.

Fix Bootstrapping

The IP (both IPv4 and IPv6) and the Tor onion addresses were specified for the bootstrap nodes. When a new user came to using Radicle, there was a chance that their setup did not support IPv6 or Tor, resulting in a failure to connect to one of those addresses. The node does not know how to try a follow-up address, for the moment, so we have decided to skip Tor addresses when it is not configured, and removed the IP addresses in favor of the DNS names.

Changelog

This release contains 153 commit(s) by 12 contributor(s).

Checksums

ec54696394ec8cdb6e7046882de1fd242259db260b53204b74a4a20a0437bcd0  radicle-1.6.0-x86_64-apple-darwin.tar.xz
906d7906f4346ed6c7c6069a5a44254da2aad43ec71b02e3c2d71d73ac0d503e  radicle-1.6.0-aarch64-apple-darwin.tar.xz
d390cabc3d06502580ce0140863d6315890525f9976446d8c1c252809a3c21b8  radicle-1.6.0-x86_64-unknown-linux-musl.tar.xz
8bc5f8fad9dfa0b038903ff961e313fe806450680e94e7228b12668ac95bf5ea  radicle-1.6.0-aarch64-unknown-linux-musl.tar.xz
联系我们 contact @ memedata.com