Skip to content

steve-bate/firm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FIRM: Federated Information Resource Manager

It's not SoLiD, but it's FIRM.

This is an experimental ActivityPub-enabled federated information resource manager. This library can be used to implement ActivityPub, Linked Data, and similar servers. It's currently not intended to be the basis for a public servers, but rather a platform for experimentation and implementing proof-of-concept for social web ideas.

Warning

This library is still in the early stages of development, but there are already some potentially useful and interesting features:

Core Features

These are current features, unless tagged otherwise.

  • 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
  • Multiple authentication techniques
  • Implements both S2S and C2S ActivityPub profiles.
  • Supports unofficial ActivityPub media upload protocol
  • Extensible WebFinger (Resource-specific properties)
    • Interoperates with Mastodon
  • Extensible NodeInfo (Tenant-specific Metadata)
  • JSON Schema-based validation (WIP)
  • Event streaming Support (SSE, FEP-3ab2)
  • Collection filtering using JSONPath (RFC 9535)

Server

  • Advanced Features
    • Multi-actor
    • Multi-tenant (multiple instances hosted in same server process with shared remote cache)
  • File-based storage (JSON)
    • Partitioned storage
      • Remote cache, separate from tenant documents
      • Private storage
  • Linked Data Support (using firm-ld library)
  • ActivityPub C2S Proxy Endpoint
  • Uses FastAPI and uvicorn
  • Allows per-tenant customization
  • Integration testing with FIRM testsuite based on the activitypub-testsuite

Road Map

This is very subject to change.

  • Version 0.2.0
  • Version 0.3.0
    • RDF Graph Storage (mostly implemented already)
    • SPARQL endpoint (already implemented)
    • Full-Text Search on RDF data (implemented already)
  • Long Term
    • More ActivityPub C2S Extensions
    • Additional storage implementations (see above)
    • FEP prototyping and proof-of-concept demonstrations
    • Domain-specific server implementations based on FIRM foundation.

About

Federated Information Resource Manager (FIRM). Experimental ActivityPub-compatible domain-independent server. "It's not SOLID, but it's FIRM."

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors