FIRM: Initial Release

FIRM is a Federated Information Resource Manager. It's a flexible server platform for experimentation with ActivityPub and Social Web software. The focus is not on performance or scalability, but on the ability to create rapid prototypes of new functionality.

This is a work in progress so expect bugs and breaking changes. The source code is being released for those brave souls who are curious enough to explore the implementation details.

Source Code (GitHub)

Features

  • Python 3 implementation (libraries for other languages being developed)
    • Minimal external dependencies (only cryptography libraries for HTTP signatures)
  • Multi-actor
  • Multitenant
    • Multiple domains supported on a single server
  • Data vocabulary-independent
  • Flexible URIs (supports any HTTP URI path structure)
  • Abstract web interface
  • Abstract resource store
    • Flexible data partitioning
    • Multiple storage implementations (can be used together)
      • In-Memory
      • File System (JSON)
      • Sqlite3 (JSON)
  • Multiple authentication techniques
  • Partial ActivityPub S2S implementation
    • Implements activitypub-mincore and more.
    • Interoperates with Mastodon Follow, Undo and Create activities.
  • Partial ActivityPub C2S implementation
  • Extensible WebFinger (Resource-specific properties)
    • Interoperates with Mastodon
  • Extensible NodeInfo (Tenant-specific Metadata)

Future Work

  • Additional Storage Implementations
  • Integration testing with [activitypub-testsuite](https://github.com/
  • SPARQL endpoint (already implemented, but not integrated)
  • Full-Text Search on RDF data (implemented already, but not integrated)
  • JSON Schema Validation (fediverse-json-schema)
  • ActivityPub Media Upload
  • ActivityPub C2S Proxy Endpoint
  • SoLiD-lite support
  • Document management
  • Event streaming
  • ActivityPub C2S Extensions
  • Mastodon-compatible UI API
  • FEP prototyping and proof-of-concept demonstrations
  • Domain-specific server implementations

Source Code (GitHub)

Leave a Comment

Mastodon