Openrsync: An implementation of rsync, by the OpenBSD team
AIThis post was created with the assistance of artificial intelligence (AI).

TL;DR

Before you orderOffer from Amazon

Get the latest gadgets delivered free with Prime

  • Fast, free delivery on millions of items
  • Prime Video, Amazon Music and more included
  • Member-only deals all year
Start your free Prime trial Free trial for eligible customers · Cancel anytime
As an affiliate, we earn on qualifying purchases.

The OpenBSD project has integrated openrsync, an open-source rsync implementation, into its base system. It is compatible with rsync protocol 3.1.3 and supports UNIX systems, providing an alternative to the official rsync tool.

The OpenBSD team has officially merged openrsync, an implementation of the rsync protocol, into its base system, making it available to users and developers. This development provides an open-source alternative to the official rsync tool, with compatibility for modern protocols and a permissive license.

Openrsync is written as part of the rpki-client project, funded by organizations including NetNod, IIS.SE, SUNET, and 6connect. It is licensed under the BSD (ISC) license and is compatible with rsync protocol 3.1.3, although it supports only a subset of command-line arguments.

The implementation is designed to run on OpenBSD as the officially supported operating system but can also compile and operate on other UNIX-like systems. It has been integrated into the OpenBSD base, with instructions available for installation and usage, including server mode operation.

Openrsync’s architecture closely follows the original rsync algorithm, involving a sender and receiver that share a file list and perform block exchanges based on hashing to synchronize files efficiently. The source code is available for contributions, and the project aims to provide a fully functional, compatible alternative to the official rsync tool.

Why It Matters

This development matters because it offers an open-source, BSD-licensed implementation of the rsync protocol, which is widely used for file synchronization and backup tasks. It enhances transparency and modifiability, especially for open-source projects and systems prioritizing licensing flexibility. Additionally, its integration into OpenBSD ensures a secure, native tool that aligns with the operating system’s emphasis on security and openness.

Products Worth Considering

LG UltraGear 27-Inch QHD OLED Gaming Monitor, 240Hz, 0.03ms, G-SYNC Compatible, FreeSync Premium Pro, HDMI 2.1

LG UltraGear 27-Inch QHD OLED Gaming Monitor, 240Hz, 0.03ms, G-SYNC Compatible, FreeSync Premium Pro, HDMI 2.1

As an affiliate, we earn on qualifying purchases.

Background

Rsync, originally developed by Andrew Tridgell and Paul Mackerras, is a cornerstone tool for file synchronization across systems. The protocol’s efficiency relies on a clever algorithm that minimizes data transfer by exchanging only changed blocks. Prior to openrsync, users relied on the official rsync implementation, which is licensed under the GPL, limiting its use in some open-source projects.

Openrsync’s development emerged from efforts to create a fully open-source alternative that maintains compatibility with current rsync protocols. Its merge into OpenBSD’s base system signifies a step toward broader adoption and integration into secure, open environments.

While openrsync is compatible with rsync protocol 3.1.3, it supports only a subset of command-line options, which might limit some advanced features available in the official rsync. Its ongoing development and potential future enhancements remain subjects of interest.

“The integration of openrsync into the OpenBSD base enhances our commitment to open-source software and provides a secure, BSD-licensed alternative to the widely used rsync tool.”

— OpenBSD development team

“Openrsync offers compatibility with modern rsync protocols and is designed to be portable across UNIX systems, supporting our security and openness goals.”

— OpenBSD project spokesperson

What Remains Unclear

It is not yet clear how widely openrsync will be adopted outside OpenBSD or whether future versions will support the full range of rsync features. The project’s ongoing development and community contributions will influence its evolution.

What’s Next

Next steps include encouraging community contributions, further testing on different UNIX systems, and potential expansion of feature support. Monitoring updates from the OpenBSD team and openrsync repository will be key to understanding its future development.

Key Questions

What is openrsync and how does it differ from the official rsync?

Openrsync is an open-source implementation of the rsync protocol, licensed under BSD, and integrated into OpenBSD. It aims to provide compatibility with rsync protocol 3.1.3 but supports only a subset of command-line options compared to the official version.

Can openrsync be used on systems other than OpenBSD?

Yes, openrsync can compile and run on other UNIX-like systems, although its primary support and integration are with OpenBSD. Users should verify compatibility and test in their environments.

Will openrsync support all features of the official rsync?

No, it currently supports only a subset of command-line arguments and features. Future updates may expand functionality based on community contributions and development priorities.

How can I contribute to openrsync development?

Contributions are welcome; interested developers can send patches to tech@openbsd.org, as indicated by the project maintainers. The source code and documentation are publicly available for review and modification.

Source: Hacker News

You May Also Like

LLMs are eroding my software engineering career and I don’t know what to do

A software engineer shares how AI, especially LLMs, are diminishing the value of domain expertise and debugging skills, raising concerns about job security.

Why Type Safety Saves Time in Larger Codebases

AIThis post was created with the assistance of artificial intelligence (AI).Type safety…

Building Resilient Systems With Sam Newman

A Pragmatic Engineer podcast episode features Sam Newman on distributed-system resilience, microservices, observability and AI-assisted development.

Show HN: Nibble

Nibble is a new systems programming language written in C, designed to generate LLVM IR without external dependencies, supporting advanced features and graphical demos.