Distant Versions Save

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

v0.20.0-alpha.5

1 year ago

Release Notes

Added

  • CLI now offers the following new subcommands
    • distant fs copy is a refactoring of distant client action copy
    • distant fs exists is a refactoring of distant client action exists
    • distant fs read is a refactoring of distant client action file-read, distant client action file-read-text, and distant client action dir-read
    • distant fs rename is a refactoring of distant client action rename
    • distant fs write is a refactoring of distant client action file-write, distant client action file-write-text, distant client action file-append,
    • distant fs make-dir is a refactoring of distant client action dir-create
    • distant fs metadata is a refactoring of distant client action metadata
    • distant fs remove is a refactoring of distant client action remove
    • distant fs search is a refactoring of distant client action search
    • distant fs watch is a refactoring of distant client action watch
    • distant spawn is a refactoring of distant client action proc-spawn with distant client lsp merged in using the --lsp flag
    • distant system-info is a refactoring of distant client action system-info
  • Search now supports upward as a directional setting to traverse upward looking for results rather than recursing downward

Changed

  • CLI subcommands refactored
    • distant client select moved to distant manager select
    • distant client action moved to distant action
    • distant client launch moved to distant launch
    • distant client connect moved to distant connect
    • distant client lsp moved to distant lsp
    • distant client repl moved to distant api
    • distant client shell moved to distant shell

Removed

  • distant-core crate no longer offers the clap feature

Fixed

  • distant launch manager://localhost now rejects a bind address of ssh as the SSH_CONNECTION environment variable isn't available in most cases

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

41d453f3aad90af5bf8ebcedd493322db0054d447c3b00a0e9d564ed09e58765  distant-macos
d0b43b8aa75c03513a600c4e78003d94ad3be7a85c3b9e2996175c4a871646c5  distant-win64.exe
3a981daee5a7dfebd6494e9ae5bee66e2652887a98b07453dc5e80248db234a7  distant-linux64-gnu-x86
a026a66e15b8cde75a9a17cdf5ffdaf84c3517bd8785308b20e8553d07bb6f03  distant-linux64-gnu-aarch64
e278cb38a321300145c315038c29daed37d8c23e53578ccb5dd1d063f5fc0cee  distant-linux64-gnu-arm-v7
3db622044d4fc402ae6cdb8455455ffba023eed36ea0dc60cb08a4ec644b3f62  distant-linux64-musl-x86
0d8e5e35b5063e3c90de16f9212d47d0a121532ed83c343c1ef0363376bbcce6  distant-linux64-musl-aarch64

v0.20.0-alpha.4

1 year ago

Release Notes

Added

  • Default configuration for config.toml
  • Ability to generate default configuration using distant generate config /path/to/config.toml
  • --current-dir option for distant client shell and distant client lsp

Changed

  • Updated a variety of dependencies to latest versions

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

a70b1ece38d54577764df3fd24d53473bf49e1476eaffb1c87085a2ccab4abcf  distant-macos
c67ca507e5672cd364071339b000ae60a5b78bb643793501ca39f9b8c32f2df0  distant-win64.exe
1d61b0b68d3c6d8d23f5bdf2809969a8a0efc3c29e160006860caaa27707ec05  distant-linux64-gnu-x86
533e179d03c0dcf2726dd575e3430628c0cada3a1dd8e2999e448f7cbd2c8d23  distant-linux64-gnu-aarch64
ccff3ace8d626eafcce3a3814e176a9afe27acb0ba834c11281b9673d0a21ef3  distant-linux64-gnu-arm-v7
4963592efc8ab3bc4b744d1097f7150e7bdb9362619d64ce0aa8b373d76a4a16  distant-linux64-musl-x86
d67327d17e6d7d655ffa550e02d4543ae3961f525d4c0b8f78aab85bd2901a69  distant-linux64-musl-aarch64

v0.20.0-alpha.3

1 year ago

Release Notes

Added

  • Frame::empty method as convenience for Frame::new(&[])
  • ClientConfig to support ReconnectStrategy and a duration serving as the maximum time to wait between server activity before attempting to reconnect from the client
  • Server sends empty frames periodically to act as heartbeats to let the client know if the connection is still established
  • Client now tracks length of time since last server activity and will attempt a reconnect if no activity beyond that point

Changed

  • Frame methods read and write no longer return an io::Result<...> and instead return Option<Frame<...>> and nothing respectively
  • Frame::read method now supports zero-size items
  • Client::inmemory_spawn and UntypedClient::inmemory_spawn now take a ClientConfig as the second argument instead of ReconnectStrategy
  • Persist option now removed from ProcSpawn message and CLI
  • Bump minimum Rust version to 1.64.0

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

994bde5f6d0c1f6ecb3c46c11707e99cc3128095a0e7060c033c79592da3d373  distant-macos
b058e9da607891bd18ee27d452f932d02c9239af20fb9ce799adcf6107212a1d  distant-win64.exe
2b51ce38eda2e592d07a890f94f62be3b3c39afc6f5f42d873a52258d3fe3097  distant-linux64-gnu-x86
cfff2e0ba902f988d39f4de9c2077ab4362c4e201dc5dbb50e6ed319f0dceef3  distant-linux64-gnu-aarch64
30d4b9d8fa550076985680064c168454cdbcb3b08fc59672ce41f163d50724e0  distant-linux64-gnu-arm-v7
7a4ea19e244ceb06f42ec2ac63d43891209a8a29912e549ca3ed970871630904  distant-linux64-musl-x86
5ce7bf66f9e2ec995e37e29ff11bcf821c02aee7247ac9e10462dd879d294bf7  distant-linux64-musl-aarch64

v0.20.0-alpha.2

1 year ago

Release Notes

Added

  • New ConnectionState and ConnectionWatcher to support watching changes to the client connection, supporting clone_connection_watcher and on_connection_change methods for the client

Changed

  • Server will now drop the connection if it receives an error (other than WouldBlock) while trying to read from the transport, rather than just logging the error, regardless of whether the error is resumable

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

78d064f3056d0c7b398a4567b4254e3ab2d2a1d289900e3cbdd1e2954cfa5658  distant-macos
6c095cf22faff13d413e3b8c648eaa744de06f9852bbf649e6688bf25b3b6358  distant-win64.exe
a4c9f4566d2bfaf5dd4de13f9b03de5be20d04f0d4a40f68f01d01052171b817  distant-linux64-gnu-x86
55346a3088c896105cd1411f047eb191aa435ca3aabd3786f4174abe9d3fadb9  distant-linux64-gnu-aarch64
2fcc6f35ab804ffaca882ef514622f3a0cd39ef955a02ed041707ac2411f6517  distant-linux64-gnu-arm-v7
9981a7edb1ec2dab75a0107b47865bd2d77b9b16d1a23c6ae2dfa5bd0fd65c38  distant-linux64-musl-x86
8d9fc5a88d8f8f7c51f3bd2a462541f5b28653e1dc20ba7c597f6a823b6cd79b  distant-linux64-musl-aarch64

v0.20.0-alpha.1

1 year ago

Release Notes

NOTE: This is incomplete as v0.20.0 is a near-complete rewrite internally.

Added

  • New contains and or types for SearchQueryCondition

Changed

  • SearchQueryCondition now escapes regex for all types except regex
  • Removed min_depth option from search
  • Updated search to properly use binary detection, filter out common ignore file patterns, and execute in parallel via the ignore crate and num_cpus crate to calculate thread count

Fixed

  • Resolution of BindAddress now properly handles hostnames ranging from localhost to example.com
  • Parsing of BindAddress no longer causes a stack overflow

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

9ccf723e2fa3225634e9bb8a8d1253e0eecbae721f0ef6e1102e851a21707068  distant-macos
628ea0e1e36b4b915202ded68f7fecb957bbaac6fd8fc6e9776e68ff1b34487e  distant-win64.exe
69d6572693961cfc91ed0437a85efd1acbc3d2d8344e858397714ce35a2ece09  distant-linux64-gnu-x86
ca95653da3b1ec7abca6a1f8a2838fd3e52b29b406002d8649bec05662a5c07b  distant-linux64-gnu-aarch64
0009d25ab4f32a27fe4197adfe3ae0b9b3e2cd6ee69ec3fe0d377585be80a3c7  distant-linux64-gnu-arm-v7
c1e048863a65957a9e7131e867f657fb8e79108527c298db17ffbbc116c20312  distant-linux64-musl-x86
0639486b00d8f90bf482f06eea4c42e7bf7022a8bbe877c7665f78d3c5ce30d0  distant-linux64-musl-aarch64

v0.19.0

1 year ago

Release Notes

Added

  • SystemInfo via ssh backend now detects and reports username and shell
  • SystemInfo via ssh backend now reports os when windows detected
  • Capabilities request/response for server and manager that report back the capabilities (and descriptions) supported by the server or manager
  • Search and CancelSearch request/response for server that performs a search using grep crate against paths or file contents, returning results back as a stream
    • New Searcher available as part of distant client interface to support performing a search and getting back results
    • Updated DistantChannelExt to support creating a Searcher and canceling an ongoing search query
    • distant client action search now supported, waiting for results and printing them out

Changed

  • SystemInfo data type now includes two additional fields: username and shell. The username field represents the name of the user running the server process. The shell field points to the default shell associated with the user running the server process

Fixed

  • distant client shell will now use the default shell from system info, or choose between /bin/sh and cmd.exe as the default shell based on the family returned by a system info request
  • distant client shell properly terminates master pty when the shell exits, resolving the hanging that occurred for Windows cmd.exe and powershell.exe upon exit
  • ssh launch with login shell now only uses sh when remote family is unix
  • ssh backend implementation of copy now works more widely across windows systems by switching to powershell.exe to perform copy

Binaries

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

  • linux64-gnu is the x86-64 release on Linux using libc
  • linux64-musl is the x86-64 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

266697ccc262216627a6a79ab0a7ba82e4825bceae89126f6e77455628b39d8f  distant-macos
15f5ec9486d579cca24f6d4fb771aaf13c3a0bcf8c0d7ce0fc6e9119d642c1a3  distant-win64.exe
3458e2f7d9a30ca889a2309420a4433c945148ee6ff9d3f7feab36a8bc9d6d6e  distant-linux64-gnu
e0cae89a74c8f01ba88cbae986b801172ccece1b1f8437126a0256be9000b0bd  distant-linux64-musl

v0.18.0

1 year ago

Release Notes

Changed

  • shutdown-after replaced with shutdown that supports three options:
    1. never - server will never shutdown automatically
    2. after=N - server will shutdown after N seconds
    3. lonely=N - server will shutdown N seconds after no connections

Binaries

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

  • linux64-gnu is the x86-64 release on Linux using libc
  • linux64-musl is the x86-64 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

50791988ae76e540afae273993354d669d1ee0a34544567551c9cd2b212287a6  distant-macos
b3b6e7541d61422193eb73fc9233f227e5bdc76cf7feb66e231f169d81bb1213  distant-win64.exe
65d49688f60fb8e9e8427b407c748115db881d2eaf81c26eb4ff3f2146bf2dc4  distant-linux64-gnu
e91fb2e7aac1f0f8ebd0e9032aeb901b3656c824c8769fc5f3f19c9868f57701  distant-linux64-musl

v0.17.6

1 year ago

Release Notes

Fixed

  • shutdown-after cli parameter and config option now properly shuts down server after N seconds with no connections

Binaries

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

  • linux64-gnu is the x86-64 release on Linux using libc
  • linux64-musl is the x86-64 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

dcb3a10cc7ed5c6f63862d14fae7de671aa753c784c8e89660dce83c0709e5a5  distant-macos
245d05d28a2cb2fa970037017b53d6cbfc684d60998f39874ccdbc7df5a805c1  distant-win64.exe
c27f38accc4abf48d1f12518052ac22ac90b383d2c576a52e92dec08013df07b  distant-linux64-gnu
85184699faad4629e6dd5a6b17350ab8284ad814f625a05915d045f8b00de5e0  distant-linux64-musl

v0.17.5

1 year ago

Release Notes

Fixed

  • Handle RecommendedWatcher failing with an unsupported OS function on M1 Mac architecture running a Linux container via Docker (notify #423)

Binaries

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

  • linux64-gnu is the x86-64 release on Linux using libc
  • linux64-musl is the x86-64 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

cfd49ec5d21e22f970841f3d368da54aa1cc6cbda0a705a45696a30579d0c25a  distant-macos
687b6f57d92eb1deaf791638c65407f5bf428434ab0330d6a2213b1dbbb5c718  distant-win64.exe
0fa067c6ec49e63c655e686d5eac2721997b31a34237f73c559682c6bf9bc0c5  distant-linux64-gnu
0b7d7d0ea7f749139c271d133faa571a889d5147ea17db3bd6f9a0a55c43ee9b  distant-linux64-musl

v0.17.4

1 year ago

Release Notes

Fixed

  • Parsing of a host for Destination now correctly handles IPv6 addresses such that ::1 and [::1]:12345 are captured into host and port
  • Displaying of Distant and DistantSingleKeyCredentials now properly wrap IPv6 addresses in square brackets when a port is available

Binaries

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

  • linux64-gnu is the x86-64 release on Linux using libc
  • linux64-musl is the x86-64 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

5032b584c3644ef31b630d9c8d38eb58a72873d8a1cfada1117b264463a457c6  distant-macos
9ee8cb2241fef0680f471321b69ee33dbc94257b7e22a65ed008481e0f2fd8d1  distant-win64.exe
eb88f0b5a1d35fc80cfd4294ea93c9941af6634af5ddd2d35e919d7213a41f1b  distant-linux64-gnu
57c6eaf810c814b1343def4a5f763fbd848ed9ad2a788772b4313c9b07a425bc  distant-linux64-musl