🚧 (Alpha stage software) Library and tooling that supports remote filesystem and process operations. 🚧
All changes described in these alpha releases:
distant manager kill
, the connection is
now properly dropped, resulting servers waiting to terminate due to
--shutdown lonely=N
to now shutdown accordinglydistant launch manager://localhost
are now
properly terminated by checking the exit status of processes--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 directlysemver
crate to be used for version information in protocol and manageris_compatible_with
function to root of distant-protocol
crate that checks
if a provided version is compatible with the protocoldistant_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 protocolVec<String>
to contain a set of more
broad capabilities instead of every possible request typedistant manager select
will now output errors in a JSON
format when configured to communicate using JSONdistant-ssh2
no longer caches the remote family globally, but instead
caches it per Ssh
instanceCmd::program
and Cmd::arguments
functions as they were misleading (didn't
do what distant-local
or distant-ssh2
do)Capability
and Capabilities
from protocol and manager-c <STR>
and --cmd <STR>
to use a given string as the
command as an alternative to -- <CMD> <ARG> <ARG>
-c
as shorthand for specifying a config file--file
option for generating completion has been renamed to --output
--output
providing the option to write to a filedistant-<TRIPLE>
This is the latest commit (6feeb2d0126898bd5027889da245ba658cbb1e72) built for testing. This is not guaranteed to pass all tests or even function properly.
use_hidden
, use_ignore_files
, use_parent_ignore_files
,
use_git_ignore
, use_global_git_ignore
, and use_git_exclude
as new
options for searchingStandalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7).
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
Request
and Response
types from distant-net
now support an optional
Header
to send miscellaneous informationChange
structure now provides a single path
instead of paths
with the
distant-local
implementation sending a separate Changed
event per pathChangeDetails
now includes a renamed
field to capture the new path name
when knownDistantApi
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 trueGenericServerRef
to ServerRef
and remove ServerRef
trait,
refactoring TcpServerRef
, UnixSocketServerRef
, and WindowsPipeServerRef
to use the struct instead of Box<dyn ServerRef>
Reply
trait and associated implementations to be non-blocking &
synchronous as opposed to asynchronous to avoid deadlocks and also be more
performant@
for
passwords and :
and @
for usernamesStandalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7).
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
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 loopsdistant-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 receiveddetails
containing attributes
(clarify changes on attribute kind) and
extra
(to convey arbitrary platform-specific extra information)crossbeam-channel
dependency removed from notify by disabling its feature
in order to avoid a tokio::spawn
issue (https://github.com/notify-rs/notify/issues/380)Standalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7).
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
SetPermissions
enum variant on protocol requestset_permissions
method available DistantApi
and implemented by local
server (ssh unavailable due to https://github.com/wez/wezterm/issues/3784)DistantChannelExt::set_permissions
distant version
to display information about connected serverdistant manager service install
now accepts additional arguments to provide
the manager on startup--lsp [<SCHEME>]
scheme now expects just the scheme and not ://
distant_net::common::authentication
to separate crate distant-auth
distant_net::common::authentication::Keychain
to
distant_net::common::Keychain
distant_net::common::transport::framed::codec::encryption::SecretKey
and similar to distant_net::common::SecretKey
match
key are now inlined as either a byte
array or a string and no longer an object with a type
and value
fieldJSON
serialization versus
the explicit null
value providedCapabilities
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 capabilitiesdistant_core::api::local
moved to distant_local
distant capabilities
has been removed in favor of distant version
Standalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7).
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
distant_core::data
to distant_core::protocol
--lsp
now accepts an optional scheme
to be used instead of
distant://
, which is the defaultRemoteLspProcess
now takes a second argument, scheme
, which dictates
whether to translate distant://
or something elseStandalone binaries are built out for Windows (x86_64), MacOS (Intel & ARM), and Linux (x86_64, aarch64, armv7).
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