Skip to main content

Crate rustbridge_bundle

Crate rustbridge_bundle 

Source
Expand description

Plugin bundle format for rustbridge

This crate provides types and utilities for creating and loading .rbp (rustbridge plugin) bundles - standardized archives containing multi-platform plugin libraries and metadata.

§Bundle Structure

my-plugin-1.0.0.rbp
├── manifest.json
├── schema/
│   ├── messages.json          # JSON Schema for message types
│   └── messages.h             # C header with struct definitions
├── lib/
│   ├── linux-x86_64/
│   │   └── libmyplugin.so
│   ├── darwin-aarch64/
│   │   └── libmyplugin.dylib
│   └── windows-x86_64/
│       └── myplugin.dll
└── docs/
    └── README.md

§Example

use rustbridge_bundle::{BundleBuilder, Manifest, Platform};

// Create a bundle
let manifest = Manifest::new("my-plugin", "1.0.0");
let builder = BundleBuilder::new(manifest)
    .add_library(Platform::LinuxX86_64, "target/release/libmyplugin.so")?
    .add_library(Platform::DarwinAarch64, "target/release/libmyplugin.dylib")?;

builder.write("my-plugin-1.0.0.rbp")?;

Re-exports§

pub use builder::BundleBuilder;
pub use loader::BundleLoader;

Modules§

builder
Bundle creation utilities.
loader
Bundle loading utilities.

Structs§

ApiInfo
API information describing available messages.
BuildInfo
Build information (all fields optional).
GitInfo
Git repository information.
Manifest
Bundle manifest - the main descriptor for a plugin bundle.
MessageInfo
Information about a single message type.
PlatformInfo
Platform-specific library information with variant support.
PluginInfo
Plugin metadata.
Sbom
SBOM (Software Bill of Materials) paths.
SchemaInfo
Schema file information.
VariantInfo
Variant-specific library information.

Enums§

BundleError
Errors that can occur during bundle operations.
Platform
Supported platform targets.

Constants§

BUNDLE_EXTENSION
Bundle file extension.
BUNDLE_VERSION
Current bundle format version.
MANIFEST_FILE
Manifest file name within the bundle.

Type Aliases§

BundleResult
Result type for bundle operations.