Skip to content

Repository files navigation

Bunori Extensions

Official WebAssembly (WASM) Extension Repository for Bunori


License Discord



Usage Instruction

To browse and install extensions in the Bunori app, add the Repository URL to your application settings:

https://bunoriapp.github.io/extensions/index.min.json

Overview

Bunori Extensions is the repository containing source crawlers for the Bunori ecosystem.

Unlike traditional novel reader crawlers written in JavaScript or platform-specific JVM bytecode, Bunori extensions are compiled to WebAssembly (WASM) and packaged into lightweight .bext archives. Providing:

  • Cross-platform support across Android, Desktop, and CLI runners.
  • Fast, memory-safe execution in isolated WASM runtimes.
  • Host-managed networking with built-in Network bypass, HTTP connection pooling, and cookie preservation.

Architecture & Bext Structure

Each extension is an independent Rust crate compiled to wasm32-unknown-unknown. Network I/O and logging are assigned to the host application through a Foreign Function Interface (FFI).

┌────────────────────────────────────────────────────────┐
│                      Bunori Host                       │
│             (Android App / Desktop Client)             │
│                                                        │
│   ┌─────────────────────┐    ┌─────────────────────┐   │
│   │     WASM Engine     │    │     HttpClient      │   │
│   │                     │                          │   │
│   └──────────▲──────────┘    └──────────▲──────────┘   │
└──────────────┼──────────────────────────┼──────────────┘
               │      host_http() FFI     │
┌──────────────▼──────────────────────────▼──────────────┐
│                    Extension (.bext)                   │
│   ├── manifest.json                                    │
│   ├── source.wasm                                      │
│   └── artifacts/                                       │
│       ├── arm64-v8a/extension.aot                      │
│       └── x86_64/extension.aot                         │
└────────────────────────────────────────────────────────┘

Features

Web Assembly

  • Compiled from memory-safe Rust to sandboxed .wasm bytecode.
  • Near-native execution performance with optional AOT compilation.

Reusable Templates

  • Shared template engines.
  • Scaffold a fully functional novel source with only a few lines of configuration.

Sandboxing

  • Extensions never handle raw TLS or sockets directly.
  • The host transparently manages User-Agents, cookies, and any other challenges.

Built-in Test Suite

  • Comprehensive Python test harness (tools/test.py) with native Wasmtime integration.
  • Test metadata, live searches, novel details, and chapter text extraction in seconds.

Automated deployment pipeline

  • Automated GitHub Actions pipeline builds .bext packages and publishes index.json.
  • Automatic version bumping and package distribution via GitHub Pages.

Developer Tooling

  • Dedicated CLI scaffolding tools for new sources and engine templates.
  • Clear error reporting and type-safe SDK interfaces.


Made with ❤️ for the Bunori Community

About

Rust implementation of Bunori extension (makes the extension compatible with anything that can create a Bext Loader and load wasm)

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages