Distant Versions Save

🚧 (Alpha stage software) Library and tooling that supports remote filesystem and process operations. 🚧

v0.20.0

10 months ago

Release Notes

All changes described in these alpha releases:

Fixed

  • When terminating a connection using distant manager kill, the connection is now properly dropped, resulting servers waiting to terminate due to --shutdown lonely=N to now shutdown accordingly
  • Zombies from spawned servers via distant launch manager://localhost are now properly terminated by checking the exit status of processes

v0.20.0-alpha.13

10 months ago

Release Notes

Added

  • Support for --shell with optional path to an explicit shell as an option when executing distant spawn in order to run the command within a shell rather than directly
  • semver crate to be used for version information in protocol and manager
  • is_compatible_with function to root of distant-protocol crate that checks if a provided version is compatible with the protocol

Changed

  • distant_protocol::PROTOCOL_VERSION now uses the crate's major, minor, and patch version at compile-time (parsed via const-str crate) to streamline version handling between crate and protocol
  • Protocol and manager now supply a version request instead of capabilities and the capabilities of protocol are now a Vec<String> to contain a set of more broad capabilities instead of every possible request type

Fixed

  • CLI commands like distant manager select will now output errors in a JSON format when configured to communicate using JSON
  • distant-ssh2 no longer caches the remote family globally, but instead caches it per Ssh instance

Removed

  • Cmd::program and Cmd::arguments functions as they were misleading (didn't do what distant-local or distant-ssh2 do)
  • Removed Capability and Capabilities from protocol and manager

v0.20.0-alpha.12

10 months ago

Release Notes

Changed

  • Minimum Rust version is now 1.70.0 due to bump in grep-cli minimum requirement. This technically applied to v0.20.0-alpha.11, but wasn't caught until the dependency updated

Fixed

  • distant --help will now return exit code of 0
  • distant --version will now return exit code of 0

v0.20.0-alpha.11

10 months ago

Release Notes

Added

  • CLI now supports -c <STR> and --cmd <STR> to use a given string as the command as an alternative to -- <CMD> <ARG> <ARG>
  • Add build for FreeBSD

Changed

  • Cli no longer uses -c as shorthand for specifying a config file
  • --file option for generating completion has been renamed to --output
  • CLI command to generate config files now defaults to printing to stdout with --output providing the option to write to a file
  • Artifacts built now use format of distant-<TRIPLE>

latest

10 months ago

This is the latest commit (6feeb2d0126898bd5027889da245ba658cbb1e72) built for testing. This is not guaranteed to pass all tests or even function properly.

v0.20.0-alpha.10

10 months ago

Release Notes

Added

  • use_hidden, use_ignore_files, use_parent_ignore_files, use_git_ignore, use_global_git_ignore, and use_git_exclude as new options for searching

Changed

  • Searching now disables all standard filters by default with re-introducing the ability to set the filters by individual options

Fixed

  • Failing to start a search will no longer cause the search task to exit when using the local server, which would result in no more searches being able to be executed

Binaries

Standalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7).

  • linux64-gnu-x86 is the x86-64 release on Linux using libc
  • linux64-gnu-aarch64 is the aarch64 release on Linux using libc
  • linux64-gnu-arm-v7 is the arm-v7 release on Linux using libc (for Raspberry PI)
  • linux64-musl-x86 is the x86-64 release on Linux using musl (static binary, no libc dependency)
  • linux64-musl-aarch64 is the aarch64 release on Linux using musl (static binary, no libc dependency)
  • macos is a universal binary for Mac OS that supports x86-64 and aarch64 (ARM) platforms
  • win64 is the x86-64 release on Windows using MSVC

SHA256 Checksums

dc2c33ba400adbfb084e3c6d49b19448ffbba5124211377c3808171464701f4a  distant-macos
7c3b3c3ffcad5f19fe1b85bbf2ee244e208cf36c46d58698fe7bb4e706f4261b  distant-win64.exe
028997eeadeec7ae2e4d384473671910928a5f89ea063ca941798116a934040b  distant-linux64-gnu-x86
45893625421ff5421c1871c101eb01886097e158e17c11e42c3ccf2c9de30586  distant-linux64-gnu-aarch64
f765188e763696c3aa12921d947a7d212d964b92a1dff07c9abd2109ac04c7d7  distant-linux64-gnu-arm-v7
0f572fcf65cd7d32fc51aff3fe121f8a76dda91a6db28f0fd3759c50478aaea9  distant-linux64-musl-x86
0d3a429adc194e6d60c4297763ce288622755870ef2d9c64c7814b422222c7ba  distant-linux64-musl-aarch64

v0.20.0-alpha.9

10 months ago

Release Notes

Added

  • Request and Response types from distant-net now support an optional Header to send miscellaneous information

Changed

  • Change structure now provides a single path instead of paths with the distant-local implementation sending a separate Changed event per path
  • ChangeDetails now includes a renamed field to capture the new path name when known
  • DistantApi now handles batch requests in parallel, returning the results in order. To achieve the previous sequential processing of batch requests, the header value sequence needs to be set to true
  • Rename GenericServerRef to ServerRef and remove ServerRef trait, refactoring TcpServerRef, UnixSocketServerRef, and WindowsPipeServerRef to use the struct instead of Box<dyn ServerRef>
  • Update Reply trait and associated implementations to be non-blocking & synchronous as opposed to asynchronous to avoid deadlocks and also be more performant

Fixed

  • Username and password now support full character sets outside of @ for passwords and : and @ for usernames

Binaries

Standalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7).

  • linux64-gnu-x86 is the x86-64 release on Linux using libc
  • linux64-gnu-aarch64 is the aarch64 release on Linux using libc
  • linux64-gnu-arm-v7 is the arm-v7 release on Linux using libc (for Raspberry PI)
  • linux64-musl-x86 is the x86-64 release on Linux using musl (static binary, no libc dependency)
  • linux64-musl-aarch64 is the aarch64 release on Linux using musl (static binary, no libc dependency)
  • macos is a universal binary for Mac OS that supports x86-64 and aarch64 (ARM) platforms
  • win64 is the x86-64 release on Windows using MSVC

SHA256 Checksums

51b93b3d23cf55a58e55d0b3194699a153c24b32c77408ff951e44e749d1bd7d  distant-macos
cc702af7e0a4e260d917c7f8e1d1565ef707fe74de471b4cf0c5e7656082fea1  distant-win64.exe
612e588d4f61c61ad37e0bfe75986ede1b6f0e3bd3fd484d69067d225f53ff7d  distant-linux64-gnu-x86
91e53e217567ebacb010eca9ccbb0aaa839142d44571c93d1d724aaed0a707ee  distant-linux64-gnu-aarch64
ad12f3f2098acd8d1dea361a275ee0ffce7061bb7ee9702fdae99e4748d9da88  distant-linux64-gnu-arm-v7
026d64408d564f3308ceda05b50a0db3e30774e64fd3683c198234900191f9cd  distant-linux64-musl-x86
0f7164d530d1d4056811d5cef15f69c5d1b7d5f4b04df21922ad1ed444a02367  distant-linux64-musl-aarch64

v0.20.0-alpha.8

11 months ago

Release Notes

Added

  • distant-local now has two features: macos-fsevent and macos-kqueue. These are used to indicate what kind of file watching to support (for MacOS). The default is macos-fsevent.
  • [server.watch] configuration is now available with the following settings:
    • native = <bool> to specify whether to use native watching or polling (default true)
    • poll_interval = <secs> to specify seconds to wait between polling attempts (only for polling watcher)
    • compare_contents = <bool> to specify how polling watcher will evaluate a file change (default false)
    • debounce_timeout = <secs> to specify how long to wait before sending a change notification (will aggregate and merge changes)
    • debounce_tick_rate = <secs> to specify how long to wait between event aggregation loops
  • distant-protocol response for a change now supports these additional fields:
    • timestamp (serialized as ts) to communicate the seconds since unix epoch when the event was received
    • details containing attributes (clarify changes on attribute kind) and extra (to convey arbitrary platform-specific extra information)

Changed

  • Bump minimum Rust version to 1.68.0

Removed

Binaries

Standalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7).

  • linux64-gnu-x86 is the x86-64 release on Linux using libc
  • linux64-gnu-aarch64 is the aarch64 release on Linux using libc
  • linux64-gnu-arm-v7 is the arm-v7 release on Linux using libc (for Raspberry PI)
  • linux64-musl-x86 is the x86-64 release on Linux using musl (static binary, no libc dependency)
  • linux64-musl-aarch64 is the aarch64 release on Linux using musl (static binary, no libc dependency)
  • macos is a universal binary for Mac OS that supports x86-64 and aarch64 (ARM) platforms
  • win64 is the x86-64 release on Windows using MSVC

SHA256 Checksums

0499070e13bc953e551a0a1b2efbbc5ccb47aad2f17e3989c3ffa61148e29cfe  distant-macos
78f006d9c4faf92139a4cdfdb253298434e38c6d2eeca7b17d89fb94bac62205  distant-win64.exe
b083566ab7b18d8ffb0fab139f41cc5032380dcae7ca3fd5d090148cd4b9489e  distant-linux64-gnu-x86
104a5c1efde1a3f017bdbefc4c5bb1d715a7b0665f587f8a8c5e9a0d114cf660  distant-linux64-gnu-aarch64
d863eaef29a22e97f148442d0ca6d797af5f0ad59be8e9f18540c804db5d5b4c  distant-linux64-gnu-arm-v7
822d8e2513f28a14ec7c216638d4066665adef192461cd426fe8529929273349  distant-linux64-musl-x86
7f7e5f306002963a62658855ae36f804c6a6382cf3d9aaeae8e2deb3288a4bdf  distant-linux64-musl-aarch64

v0.20.0-alpha.7

11 months ago

Release Notes

Added

  • New SetPermissions enum variant on protocol request
  • New set_permissions method available DistantApi and implemented by local server (ssh unavailable due to https://github.com/wez/wezterm/issues/3784)
  • Implementation of DistantChannelExt::set_permissions
  • distant version to display information about connected server
  • distant manager service install now accepts additional arguments to provide the manager on startup

Changed

  • CLI --lsp [<SCHEME>] scheme now expects just the scheme and not ://
  • Moved distant_net::common::authentication to separate crate distant-auth
  • Moved distant_net::common::authentication::Keychain to distant_net::common::Keychain
  • Moved distant_net::common::transport::framed::codec::encryption::SecretKey and similar to distant_net::common::SecretKey
  • Search matches reported with match key are now inlined as either a byte array or a string and no longer an object with a type and value field
  • Unset options and values are not now returned in JSON serialization versus the explicit null value provided
  • Capabilities message type has been changed to Version with new struct to report the version information that includes a server version string, protocol version tuple, and capabilities
  • distant_core::api::local moved to distant_local

Removed

  • distant capabilities has been removed in favor of distant version

Binaries

Standalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7).

  • linux64-gnu-x86 is the x86-64 release on Linux using libc
  • linux64-gnu-aarch64 is the aarch64 release on Linux using libc
  • linux64-gnu-arm-v7 is the arm-v7 release on Linux using libc (for Raspberry PI)
  • linux64-musl-x86 is the x86-64 release on Linux using musl (static binary, no libc dependency)
  • linux64-musl-aarch64 is the aarch64 release on Linux using musl (static binary, no libc dependency)
  • macos is a universal binary for Mac OS that supports x86-64 and aarch64 (ARM) platforms
  • win64 is the x86-64 release on Windows using MSVC

SHA256 Checksums

52655dbae3ae337d9f2ae898125268317367f7396496ba8b35ebf2bef84750c3  distant-macos
9c535a7b49c777b9fad1ae847e5f8f4ff53471c380ea6224efa84ce4b0151bff  distant-win64.exe
6daf643c8338c1ec87b663c550a10e9e2f1c34770998c8975bc826b4bb28e8ff  distant-linux64-gnu-x86
6b8d1200808744bc60bf9b335218461162e2b8896ecf44a2998e98df592644d3  distant-linux64-gnu-aarch64
aa68500ee867bfae18e65c9ce6db7d570ba280e64c41b03c1f56a884d0375fa9  distant-linux64-gnu-arm-v7
31df47a14157ccefa1605b950337ef4964cf90682908bcc1637db8e3ca48064a  distant-linux64-musl-x86
ea7de06779ff75ca8add2cef49ccfa1b057aebb0b0a29f8c80bd8cfd74d54d93  distant-linux64-musl-aarch64

v0.20.0-alpha.6

11 months ago

Release Notes

Changed

  • Renamed distant_core::data to distant_core::protocol
  • CLI --lsp now accepts an optional scheme to be used instead of distant://, which is the default
  • RemoteLspProcess now takes a second argument, scheme, which dictates whether to translate distant:// or something else

Binaries

Standalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7).

  • linux64-gnu-x86 is the x86-64 release on Linux using libc
  • linux64-gnu-aarch64 is the aarch64 release on Linux using libc
  • linux64-gnu-arm-v7 is the arm-v7 release on Linux using libc (for Raspberry PI)
  • linux64-musl-x86 is the x86-64 release on Linux using musl (static binary, no libc dependency)
  • linux64-musl-aarch64 is the aarch64 release on Linux using musl (static binary, no libc dependency)
  • macos is a universal binary for Mac OS that supports x86-64 and aarch64 (ARM) platforms
  • win64 is the x86-64 release on Windows using MSVC

SHA256 Checksums

ef2827563f6d9231e4c92410233525b5675befa2407c13338ae0a931dc58197a  distant-macos
a2f2b3adda7d9abbebb50f12a183c871c7905d2bf34e1108b8aa85d95c05d22f  distant-win64.exe
8b5bc79b9559350c013a81839132b5c5d88fc39e9677e9fe4169c57849c009a2  distant-linux64-gnu-x86
6175a7cfbb1262a00683212a6e0b35819e3f806136de54a9c0397f94ab070e08  distant-linux64-gnu-aarch64
4930ecf4aad3bd265ec54984a10e41ee70564dd79140d1fa5190fd0a6dcb2e66  distant-linux64-gnu-arm-v7
afda62101763940f842e9fd75354f27dbd2b837f591325d49bb051870a8cd6d1  distant-linux64-musl-x86
60ab369db2644c990f910e8bbe8cc3d6cf8102072f894e23624335526ffc5790  distant-linux64-musl-aarch64