Files
fressh/packages/react-native-uniffi-russh/README.md
EthanShoeDev e4139c6f7b small tweaks
2025-10-07 10:19:45 -04:00

58 lines
1.5 KiB
Markdown

## @fressh/react-native-uniffi-russh
React Native bindings (via UniFFI) for the Rust SSH library
[russh](https://github.com/Eugeny/russh).
[![npm version](https://img.shields.io/npm/v/%40fressh%2Freact-native-uniffi-russh)](https://www.npmjs.com/package/@fressh/react-native-uniffi-russh)
### Install
```bash
pnpm add @fressh/react-native-uniffi-russh
```
Peer dependencies (you manage): `react`, `react-native`.
### Usage
This package exposes a native Rust module for SSH transport. For a complete,
working integration, see the example app:
- https://github.com/EthanShoeDev/fressh/tree/main/apps/mobile
### API overview
High-level API surface (see code for full types):
```ts
import { RnRussh } from '@fressh/react-native-uniffi-russh';
await RnRussh.uniffiInitAsync();
const conn = await RnRussh.connect({
host: 'example.com',
port: 22,
username: 'me',
security: { type: 'password', password: '...' },
onServerKey: async () => true,
});
const shell = await conn.startShell({ term: 'Xterm' });
shell.addListener(
(ev) => {
// handle TerminalChunk or DropNotice
},
{ cursor: { mode: 'live' } },
);
```
### Links
- Changelog:
[`CHANGELOG.md`](https://github.com/EthanShoeDev/fressh/blob/main/packages/react-native-uniffi-russh/CHANGELOG.md)
- Contributing:
[`CONTRIBUTING.md`](https://github.com/EthanShoeDev/fressh/blob/main/CONTRIBUTING.md)
- API source:
[`src/api.ts`](https://github.com/EthanShoeDev/fressh/blob/main/packages/react-native-uniffi-russh/src/api.ts)
- License: MIT