Skip to content

Commit c98993d

Browse files
committed
Update readme
1 parent bc6c653 commit c98993d

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

README.md

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,30 @@ embed pretty much anywhere, I'm collecting possible use cases in
55
[discussions](https://github.com/mkj/sunset/discussions/1). Don't hesitate to
66
suggest something!
77

8-
**This software is in an early stage. It is suitable for some applications
9-
but will certainly have API changes**
10-
118
- `sunset` (this toplevel) is the core SSH implementation. It provides a
129
non-async API, runs with `no_std` and no alloc.
1310

14-
- [`sunset-embassy`](embassy) - async SSH client and server library, also
15-
`no_std`. This uses [Embassy](https://embassy.dev/) crate but is async
16-
executor agnostic.
11+
- [`sunset-async`](async) - async SSH client and server library, also
12+
`no_std` no-alloc. This is async-executor agnostic (using Embassy for mutexes, but works on std too).
1713

18-
- [`embassy/demos`](embassy/demos) has demos with Embassy executor for wifi on a Raspberry Pi
19-
[Pico W](embassy/demos/picow) or a
20-
[Linux tap device on `std`](embassy/demos/std) running locally.
14+
- [`demos`](demos) has demos with Embassy executor for wifi on a Raspberry Pi
15+
[Pico W](demos/picow) or a
16+
[Linux tap device on `std`](demos/std) running locally.
2117

2218
At present the Pico W build is around 150kB binary size
2319
(plus ~200KB [cyw43](https://github.com/embassy-rs/cyw43/) wifi firmware),
2420
using about 15kB RAM per concurrent SSH session (max stack size not confirmed).
2521

26-
- [`sunset-async`](async/) adds functionality to use Sunset as a normal SSH client or
22+
- [`sunset-stdasync`](stdasync/) adds functionality to use Sunset as a normal SSH client or
2723
server async library in normal Rust (not `no_std`). This uses Tokio or async-std.
2824

29-
The [examples](async/examples) include a Linux commandline SSH client `sunsetc`.
30-
It works as a day-to-day SSH client.
25+
The [examples](stdasync/examples) include a Linux commandline SSH client `sunsetc`. It works as a day-to-day SSH client.
3126

3227
## SSH Features
3328

3429
Working:
3530

31+
- Client and server
3632
- Shell or command connection
3733
- Password and public key authentication
3834
- ed25519 signatures
@@ -44,20 +40,22 @@ Working:
4440

4541
Desirable:
4642

43+
- SFTP
4744
- TCP forwarding
48-
- dh-group14 (probably `std`-only, need to investigate crates)
45+
- Post quantum hybrid key exchange
46+
- A std server example
4947
- Perhaps aes256-gcm
5048
- Perhaps ECDSA, hardware often supports it ahead of ed25519
51-
- SFTP
5249

5350
## Rust versions
5451

55-
At present Sunset will build with latest stable (1.75 at time of writing).
52+
At the time of writing Sunset will build with Rust 1.81.
53+
The requirement may increase whenever useful, targetting stable.
5654

57-
## Safety
55+
## Checks
5856

59-
Sunset uses `forbid(unsafe)`, apart from `sunset-async` which requires `unsafe`
60-
for Unix interactions.
57+
Sunset uses `forbid(unsafe)`, apart from `sunset-async` which
58+
requires `unsafe` for Unix interactions.
6159

6260
Release builds should not panic, instead returning `Error::bug()`.
6361
`debug_assert!` is used in some places for invariants during testing or

0 commit comments

Comments
 (0)