docs: add README, LICENSE files, and crate/module-level doc comments

Add top-level README.md with alpha status warning, quick start guide,
architecture overview, feature flags, transport modes, auth docs, and
Node.js API examples.

Add dual LICENSE-MIT and LICENSE-APACHE files.

Add comprehensive crate-level and module-level rustdoc to all three
crates (wraith-core, wraith, wraith-napi) and all public modules
(transport, client, server, auth, socks5, error). Add doc comments to
key public types (Transport, TransportAcceptor, ConnectOptions,
ClientSession, Server, ServeOptions, KeySource, ServerAuthConfig, etc).

Update Cargo.toml files with workspace-level package metadata
(version, edition, license, repository) and crate descriptions.
This commit is contained in:
2026-06-02 22:03:10 +00:00
parent f63589a5ca
commit 053ace6fcc
28 changed files with 713 additions and 7 deletions

View File

@@ -1,7 +1,10 @@
[package]
name = "wraith-napi"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "Node.js native addon for Wraith via napi-rs: connect() and serve() SSH tunnel functions"
repository.workspace = true
[lib]
crate-type = ["cdylib"]

View File

@@ -1,3 +1,9 @@
//! NAPI `connect()` function and `WraithStream` type.
//!
//! Opens a single SSH channel as a duplex stream for programmatic use.
//! Unlike the CLI client, this does not start a SOCKS5 server or port forwards —
//! it provides a raw stream that JavaScript code can read from and write to.
use std::net::SocketAddr;
use std::sync::Arc;

View File

@@ -1,3 +1,26 @@
//! # wraith-napi
//!
//! Node.js native addon for [Wraith](https://github.com/alkdev/wraith) via napi-rs.
//! Exposes `connect()` and `serve()` functions for programmatic SSH tunnel creation.
//!
//! > **Alpha software.** The NAPI interface may change between versions.
//!
//! # Quick example (Node.js)
//!
//! ```js
//! const { connect, serve } = require('wraith-napi');
//!
//! // Client: open a duplex SSH stream
//! const stream = await connect({
//! server: "example.com:22",
//! transport: "tcp",
//! identity: "/path/to/key",
//! });
//! await stream.write(Buffer.from("hello"));
//! const data = await stream.read(1024);
//! await stream.close();
//! ```
#[allow(unused_imports)]
#[macro_use]
extern crate napi_derive;

View File

@@ -1,3 +1,9 @@
//! NAPI `serve()` function and `WraithServer` type.
//!
//! Starts a TCP-based SSH server that emits new channel streams via a
//! `ThreadsafeFunction` callback. Currently supports TCP transport only;
//! TLS and iroh will be added in a future release.
use std::net::SocketAddr;
use std::sync::Arc;