Skip to content

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FileFire Document SDK

Crates.io Documentation License Build Status

FileFire is a cross-platform, open-source Document SDK built with Rust, designed for high-performance document processing across mobile, desktop, and web platforms. It follows a Hexagonal Architecture with a Microkernel/Plugin system for maximum extensibility.

πŸ”₯ Features

  • Cross-Platform: Native bindings for Flutter, iOS, Android, Web (WASM), and .NET
  • High Performance: Built with Rust for memory safety and speed
  • Plugin Architecture: Extensible microkernel design with hot-swappable plugins
  • Document Support: PDF, DOCX, XLSX, PPTX processing and rendering
  • Rich Functionality: Annotations, OCR, digital signatures, watermarking, AI-powered features
  • Cloud Ready: Headless cloud API for batch processing and SaaS integration

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Applications                              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Flutter  β”‚   iOS    β”‚  Android β”‚   Web    β”‚  .NET   β”‚  Cloud   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                      Platform Adapters                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                     Core Engine (Rust)                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   PDF Engine    β”‚  β”‚  Office Engine  β”‚  β”‚  Image Engine   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                      Plugin System                              β”‚
β”‚    OCR   β”‚  AI/ML   β”‚ Signatures β”‚ Watermark β”‚ Converters      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Flutter

import 'package:filefire/filefire.dart';

final doc = await FileFire.open("document.pdf");
await doc.annotate(page: 1, text: "Hello World", x: 100, y: 200);
await doc.save("output.pdf");

iOS (Swift)

import FileFire

let doc = try await FileFire.open("document.pdf")
try await doc.annotate(page: 1, text: "Hello World", x: 100, y: 200)
try await doc.save("output.pdf")

Web (JavaScript)

import { FileFire } from 'filefire-wasm';

const doc = await FileFire.open("document.pdf");
await doc.annotate({ page: 1, text: "Hello World", x: 100, y: 200 });
await doc.save("output.pdf");

πŸ“ Project Structure

/filefire
β”œβ”€β”€ core/              # Rust core engine
β”œβ”€β”€ plugins/           # Plugin implementations
β”‚   β”œβ”€β”€ ocr/          # OCR plugin (Tesseract)
β”‚   β”œβ”€β”€ ai/           # AI/ML plugins
β”‚   β”œβ”€β”€ watermark/    # Watermarking plugin
β”‚   └── signature/    # Digital signature plugin
β”œβ”€β”€ bindings/         # Platform-specific adapters
β”‚   β”œβ”€β”€ flutter/     # Dart/Flutter bindings
β”‚   β”œβ”€β”€ ios/         # Swift/iOS bindings
β”‚   β”œβ”€β”€ android/     # Kotlin/Java bindings
β”‚   β”œβ”€β”€ wasm/        # WebAssembly bindings
β”‚   └── dotnet/      # C#/.NET bindings
β”œβ”€β”€ examples/        # Example applications
β”œβ”€β”€ cloud/          # Cloud API and Docker setup
└── docs/           # Documentation

πŸ”§ Building from Source

Prerequisites

  • Rust 1.75+
  • Flutter 3.0+ (for Flutter bindings)
  • Xcode (for iOS bindings)
  • Android SDK (for Android bindings)
  • .NET 8+ (for .NET bindings)

Build Core Engine

cd core
cargo build --release

Build All Platforms

# Build core and all bindings
make build-all

# Or build specific platforms
make build-flutter
make build-ios
make build-android
make build-wasm
make build-dotnet

πŸ§ͺ Testing

# Run all tests
cargo test --workspace

# Run platform-specific tests
cd bindings/flutter && flutter test
cd examples/ios_app && xcodebuild test

πŸ“– Documentation

🌟 Plugin System

FileFire's plugin architecture allows for easy extension:

use filefire_core::Plugin;

#[derive(Debug)]
pub struct OCRPlugin;

impl Plugin for OCRPlugin {
    fn name(&self) -> &str { "ocr" }
    fn version(&self) -> &str { "1.0.0" }
    
    async fn process(&self, input: &[u8]) -> Result<Vec<u8>, Box<dyn std::error::Error>> {
        // OCR implementation
        Ok(vec![])
    }
}

πŸš€ Roadmap

  • Core Rust engine with basic PDF support
  • Plugin system architecture
  • Flutter bindings and example app
  • iOS/Android native bindings
  • WebAssembly support
  • OCR plugin implementation
  • Office document support (DOCX, XLSX, PPTX)
  • Cloud API with Docker deployment
  • Real-time collaboration features
  • AI-powered document analysis

🀝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

πŸ“„ License

This project is dual-licensed under the MIT OR Apache-2.0 license.

🏒 Enterprise Support

For enterprise support, custom features, or consulting services, please contact us at enterprise@filefire.dev.


Built with ❀️ by the FileFire community

About

An all in one fast, optimized and lightweight document SDK that enables developers to view, edit, annotate, secure, and convert PDFs, Office files, and digital documents.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages