Framework cdylib Rust 100% PodHeitor que reemplaza el stub C metaplugin tradicional + objetos Bacula enlazados estáticamente. Permite escribir plugins File Daemon en Rust seguro sin copiar ni una línea de código AGPLv3 de Bacula — declaraciones C ABI independientes, dispatch tipado de los 21 pFuncs callbacks, builders ergonómicos para FileSet/StatBuilder/JobMessage, ACL/xattr y RestoreObject. La base sobre la que se construyen los 21 plugins PodHeitor.

Qué hace

  • Sin vendoring de código AGPL — Declaraciones extern C independientes en bacula-fd-abi (sin headers Bacula); compatibilidad ABI verificada por harness mock C que dlopen del .so.
  • MetaPlugin trait + Event enum tipado — 21 pFuncs callbacks decodificados en un Event enum exhaustivo; state machine de fases (Setup/Backup/Restore/Endjob) garantiza orden correcto de los hooks.
  • Builders fluentes + Messenger — FileSet::submit_via, StatBuilder/FileType, Decision (accurate-mode), Messenger (info/warn/error/saved/skipped) con macro jmsg!. La cdylib publica el bpContext durante toda llamada pFunc.
  • ACL/xattr + RestoreObject + Cancel — Phase 2.5 entrega Xacl + XaclOp tipados (handle_xacl funcional, ya no stub) y RestoreObject accessor; cancel state corto-circuita pluginIO/startBackupFile/startRestoreFile con bRC::Cancel.

Diferenciales

Recurso Bacula Community solo Bacula Enterprise / Veeam PodHeitor
Capacidad disponible en Bacula Community No Sí ($$) Sí, sin licencia adicional
Implementación C++ / Perl propietario Rust memory-safe
Observabilidad nativa Limitada Limitada Prometheus + dashboard en vivo
Costo Gratis (sin soporte) $$$$ ≥ 50% más barato que Enterprise/Veeam

Compatibilidad

  • Bacula Community 15.0.3 (validação Phase 2.9 contra bacula-fd real)
  • Rust 1.75+ + compilador C (somente para o harness mock; produção é cdylib puro Rust)
  • Linux x86_64 (alvo primário); demais arquiteturas conforme cdylib do Rust
  • Em produção como base de todos os 15 plugins PodHeitor já publicados

Instalación rápida

Não é um plugin Bacula instalável diretamente — é um framework. Adicione bacula-fd-abi e metaplugin-rs como dependências de path no seu Cargo.toml e implemente o trait MetaPlugin. Veja plugin-hello e plugin-fileset-demo como referência mínima.

¿Listo para cambiar?

Tráiganos su propuesta de renovación o contratación de Bacula Enterprise, Veeam, Commvault o NetBackup. Garantizamos al menos 50% de descuento con más funcionalidades.

Heitor Faria · [email protected] · +1 789 726-1749 · +55 61 98268-4220 (WhatsApp)

Solicitar Cotización