Coming Soon: The plugin system is currently under development.
We’re designing a flexible plugin architecture that will allow you to extend Colibri’s functionality.
Planned Plugin Types
Metadata Providers
Create custom metadata providers to fetch book information from additional sources:
typescript
// Example plugin structure (not final)
export class CustomMetadataProvider implements MetadataProvider {
name = "custom-provider";
async searchByISBN(isbn: string): Promise<MetadataRecord[]> {
// Your implementation
}
}Ebook Formats
Add support for additional ebook formats:
typescript
export class CustomFormatParser implements EbookParser {
extensions = [".custom"];
async parse(buffer: Buffer): Promise<EbookMetadata> {
// Your implementation
}
}Storage Backends
Implement alternative storage backends:
typescript
export class CustomStorageBackend implements StorageBackend {
async upload(key: string, data: Buffer): Promise<void> {
// Your implementation
}
}Authentication Providers
Add new authentication methods:
typescript
export class CustomAuthProvider implements AuthProvider {
name = "custom-auth";
async authenticate(credentials: unknown): Promise<User> {
// Your implementation
}
}Get Involved
We’re actively designing the plugin API and would love your input!
- GitHub Discussions: Share ideas and requirements
- Issues: Report use cases we should consider
- Discord: Join our community chat