Crate mockforge_collab

Crate mockforge_collab 

Source
Expand description

§MockForge Collaboration

Cloud collaboration features for MockForge including team workspaces, real-time synchronization, version control, and role-based access control.

§Features

  • Team Workspaces: Shared environments for collaborative mock development
  • Real-time Sync: WebSocket-based synchronization across team members
  • Role-Based Access Control: Admin, Editor, and Viewer roles
  • Version Control: Git-style history and versioned snapshots
  • Self-Hosted Option: Run your own team collaboration server
  • Conflict Resolution: Intelligent merging of concurrent changes

§Quick Start

§Creating a Collaborative Workspace

use mockforge_collab::{
    CollabServer, CollabConfig, TeamWorkspace, UserRole,
};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Create collaboration server
    let config = CollabConfig::default();
    let server = CollabServer::new(config).await?;

    // Start the server
    server.run("127.0.0.1:8080").await?;

    Ok(())
}

§Connecting to a Collaborative Workspace

use mockforge_collab::{CollabClient, ClientConfig};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let config = ClientConfig {
        server_url: "ws://localhost:8080".to_string(),
        auth_token: "your-token".to_string(),
    };

    let client = CollabClient::connect(config).await?;

    // Subscribe to workspace changes
    client.subscribe_to_workspace("workspace-id").await?;

    Ok(())
}

Re-exports§

pub use auth::AuthService;
pub use auth::Credentials;
pub use auth::Session;
pub use auth::Token;
pub use client::ClientConfig;
pub use client::CollabClient;
pub use client::ConnectionState;
pub use config::CollabConfig;
pub use conflict::ConflictResolution;
pub use conflict::ConflictResolver;
pub use conflict::MergeStrategy;
pub use error::CollabError;
pub use error::Result;
pub use events::ChangeEvent;
pub use events::ChangeType;
pub use events::EventBus;
pub use events::EventListener;
pub use history::Commit;
pub use history::History;
pub use history::Snapshot;
pub use history::VersionControl;
pub use models::TeamWorkspace;
pub use models::User;
pub use models::UserRole;
pub use models::WorkspaceMember;
pub use permissions::Permission;
pub use permissions::PermissionChecker;
pub use permissions::RolePermissions;
pub use server::CollabServer;
pub use sync::SyncEngine;
pub use sync::SyncMessage;
pub use sync::SyncState;
pub use workspace::WorkspaceManager;
pub use workspace::WorkspaceService;

Modules§

api
REST API endpoints for collaboration
auth
Authentication and authorization
client
Collaboration client for connecting to servers
config
Configuration for collaboration server
conflict
Conflict resolution for concurrent edits
error
Error types for collaboration features
events
Event system for real-time updates
history
Version control and history tracking
middleware
Middleware for authentication and authorization
models
Core data models for collaboration
permissions
Permission checking and role-based access control
server
Collaboration server implementation
sync
Real-time synchronization engine
user
User management service
websocket
WebSocket handler for real-time collaboration
workspace
Workspace management and collaboration