|
|
|
@ -27,7 +27,9 @@ talk to the server.
|
|
|
|
|
[RustCrypto/ChaCha20Poly1305](https://github.com/RustCrypto/AEADs/tree/master/chacha20poly1305)
|
|
|
|
|
|
|
|
|
|
Additionally, the core of the distant client and server codebase can be pulled
|
|
|
|
|
in to be used with your own Rust crates via the `distant-core` crate.
|
|
|
|
|
in to be used with your own Rust crates via the `distant-core` crate. The
|
|
|
|
|
networking library, which is agnostic of `distant` protocols, can be used via
|
|
|
|
|
the `distant-net` crate.
|
|
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
|
@ -48,6 +50,41 @@ cargo install distant
|
|
|
|
|
Alternatively, you can clone this repository and build from source following
|
|
|
|
|
the [build guide](./BUILDING.md).
|
|
|
|
|
|
|
|
|
|
## Backend Feature Matrix
|
|
|
|
|
|
|
|
|
|
Distant supports multiple backends to facilitate remote communication with
|
|
|
|
|
another server. Today, these backends include:
|
|
|
|
|
|
|
|
|
|
* `distant` - a standalone server acting as the reference implementation
|
|
|
|
|
* `ssh` - a wrapper around an `ssh` client that translates the distant protocol
|
|
|
|
|
into ssh server requests
|
|
|
|
|
|
|
|
|
|
Not every backend supports every feature of distant. Below is a table outlining
|
|
|
|
|
the available features and which backend supports each feature:
|
|
|
|
|
|
|
|
|
|
| Feature | distant | ssh |
|
|
|
|
|
| --------------------- | --------| ----|
|
|
|
|
|
| Capabilities | ✅ | ✅ |
|
|
|
|
|
| Filesystem I/O | ✅ | ✅ |
|
|
|
|
|
| Filesystem Watching | ✅ | ✅ |
|
|
|
|
|
| Process Execution | ✅ | ✅ |
|
|
|
|
|
| Search | ✅ | ❌ |
|
|
|
|
|
| System Information | ✅ | ⚠ |
|
|
|
|
|
|
|
|
|
|
* ✅ means full support
|
|
|
|
|
* ⚠ means partial support
|
|
|
|
|
* ❌ means no support
|
|
|
|
|
|
|
|
|
|
### Feature Details
|
|
|
|
|
|
|
|
|
|
* `Capabilities` - able to report back what it is capable of performing
|
|
|
|
|
* `Filesystem I/O` - able to read from and write to the filesystem
|
|
|
|
|
* `Filesystem Watching` - able to receive notifications when changes to the
|
|
|
|
|
filesystem occur
|
|
|
|
|
* `Process Execution` - able to execute processes
|
|
|
|
|
* `Search` - able to search the filesystem
|
|
|
|
|
* `System Information` - able to retrieve information about the system
|
|
|
|
|
|
|
|
|
|
## Example
|
|
|
|
|
|
|
|
|
|
### Starting the manager
|
|
|
|
|