Rebex .NET components R6.0: Support for .NET 6.0, improvements in SSH, TLS, ZIP and VFS API
This is a major release, the first one in R6.x series. It adds a lot of new features - see below for details.
We tried very hard to make migration from R5.x as simple as possible, and we believe that the majority of our users won't encounter any issues during the upgrade at all. However, there are several possible breaking changes. In any case, you don't have to upgrade yet - R5.x will be supported until 2023-10-10.
Full support for .NET 6.0
This release adds a new set of binaries targeting the new .NET 6.0. It supports all .NET 6.0 platforms:
- Windows (x64, x86, ARM64)
- Linux (x64, ARM32, ARM64)
- macOS (x64)
Please note that support for Android and iOS/tvOS in .NET 6.0 is still in preview mode. We will fully support these platforms as soon as the corresponding .NET 6.0 update is published.
Removed deprecated APIs
In this major release, we removed some APIs that have been deprecated for a very long time and seldom used. We will publish an article soon detailing these changes. In the meantime, if this affects you, please keep using version R5.7, and let us know.
Support for reverse SSH tunnels
Finally, Rebex File Server supports incoming tunnels via SSH, also known as reverse port forwarding.
EnableReverseTunneling property in
FileServer.Settings to enable this feature.
New Rebex.IO API
We added a set of new classes to
Rebex.IO namespace that make it possible to access
files and directories in custom file system providers
using a simple API that resembles
System.IO. The new classes are
and they are provided by
Support for ECDSA X.509 certificates in SSH
Added support for
SSH host key and client key algorithms (as specified by RFC 6187).
Changes in Rebex.Terminal assembly
Due to Microsoft's decision to drop support for most of
System.Drawing on non-Windows platforms in .NET 6.0,
we decided to slightly restructure our
Rebex.Terminal assembly to accommodate for this.
TerminalFont and related classes were moved to a separate
Rebex.Terminal.Control, along with image-based or font-based functionality previously
VirtualTerminal classes (these are now available via
class with a slightly modified API with
TerminalImageFormat instead of
We also split seldom-used
SerialPortChannel class to a dedicated
Additionally, we removed
TelnetTerminalControl classes, which extend
TerminalControl. If you use these classes, just add the replacement
TelnetTerminalControl.cs files to your application - these are available as part of SshSimpleWinFormClient/TelnetSimpleWinFormClient
sample apps (VB.NET versions are available as well).
If these changes prevent you from upgrading, please keep using version R5.7 and let us know.
Updated default settings
We changed default values of some settings. For example, UTF-8 is now ubiquitous, so it makes sense to prefer it by default. Of course, you can still revert the corresponding settings to previous values. See the release history for details.
Async methods in WebClient
*Async variants of
WebClient methods. (Please note that these are still implemented synchronously internally.)
TlsStream class now features a new
Stream-based constructor, making it possible to implement TLS 1.3/1.2
on top of any suitable (readable/writable)
New ZipReader class
ZipReader class makes it possible to process ZIP files on-the-fly, without having to parse
the ZIP file's items first. You can now read ZIP files and extract items sequentially.
Non-seekable streams are supported as well.
For a detailed list of changes, see the release history.