rustbox_flutter 0.1.5 copy "rustbox_flutter: ^0.1.5" to clipboard
rustbox_flutter: ^0.1.5 copied to clipboard

Cross-platform Flutter FFI bindings for the RustBox proxy runtime, with precompiled native libraries and a typed lifecycle API.

RustBox Flutter #

Flutter FFI bindings for the RustBox proxy runtime. The Dart surface is a small lifecycle API; proxy protocols, routing, DNS, and platform integration remain in Rust.

Native libraries are precompiled and bundled with the package. Applications using RustBox do not need Rust, Cargo, or a C toolchain to build.

Supported platforms #

  • Android (arm64-v8a)
  • iOS (arm64 devices)
  • Windows (x64)
  • Linux (x64)

macOS, Web, and OHOS are not supported. Consumers need Flutter 3.44+ and Dart 3.12+.

Installation #

dependencies:
  rustbox_flutter: ^0.1.5

Usage #

import 'package:rustbox_flutter/rustbox_flutter.dart';

await RustBox.initialize();
final engine = await RustBoxEngine.create(configToml: config);

try {
  await engine.start();
  final snapshot = await engine.snapshot();
  print(snapshot.state);
  await engine.reload(nextConfig);
  await engine.stop();
} on RustBoxException catch (error) {
  print('${error.kind}: ${error.message}');
} finally {
  await engine.close();
}

configToml is the same TOML configuration accepted by the RustBox CLI. For supported inbound, outbound, routing, and DNS options, use the repository configuration examples. A minimal configuration is:

schema_version = 1

[[inbounds]]
id = "local"
type = "mixed"
listen = "127.0.0.1:2080"

[[outbounds]]
id = "direct"
type = "direct"

[[routes]]
type = "default"
outbound = "direct"

Calls for one engine are serialized; separate engines may run concurrently. Always call close when an engine is no longer needed. It is idempotent.

Errors #

Native failures become RustBoxException. Inspect kind to distinguish invalid configuration or lifecycle state from unavailable resources, runtime failures, and unexpected bridge failures.

Development #

The Rust API is in rust/src/api; generated glue is in rust/src/frb_generated.rs and lib/src/rust. After changing the bridge API, regenerate bindings and rebuild the native artifact for every supported platform:

flutter_rust_bridge_codegen generate
cargo fmt --manifest-path rust/Cargo.toml --package rustbox-flutter-bridge
../../scripts/build/flutter-prebuilt.ps1
cd example
flutter analyze
flutter test integration_test/simple_test.dart -d windows

flutter_rust_bridge is pinned to the 2.12 release line. Upgrade the Rust and Dart runtimes together, then regenerate and validate all artifacts.

2
likes
160
points
99
downloads

Documentation

API reference

Publisher

verified publisherloafman.top

Weekly Downloads

Cross-platform Flutter FFI bindings for the RustBox proxy runtime, with precompiled native libraries and a typed lifecycle API.

Repository (GitHub)
View/report issues

Topics

#proxy #rust #ffi #networking #sing-box

License

MIT (license)

Dependencies

flutter_rust_bridge

More

Packages that depend on rustbox_flutter

Packages that implement rustbox_flutter