wsforge-macros 0.1.0

Core library for WsForge WebSocket framework
Documentation

WsForge Macros

Procedural macros for the WsForge WebSocket framework.

Overview

This crate provides compile-time code generation macros that reduce boilerplate and improve developer experience when building WebSocket applications with WsForge.

Available Macros

#[websocket_handler]

Transform async functions into WebSocket handlers.

use wsforge_macros::websocket_handler;

#[websocket_handler]
async fn my_handler(msg: Message) -> Result<String> {
    Ok("response".to_string())
}

#[derive(WebSocketMessage)]

Auto-implement message conversion methods.

use wsforge_macros::WebSocketMessage;
use serde::{Deserialize, Serialize};

#[derive(WebSocketMessage, Serialize, Deserialize)]
struct ChatMessage {
    username: String,
    text: String,
}

// Generates:
// - into_message(&self) -> Message
// - from_message(msg: Message) -> Result<Self, Error>

#[derive(WebSocketHandler)]

Implement the Handler trait for custom types.

use wsforge_macros::WebSocketHandler;

#[derive(WebSocketHandler)]
struct MyHandler;

impl MyHandler {
    async fn handle(
        &self,
        message: Message,
        conn: Connection,
        state: AppState,
        extensions: Extensions,
    ) -> Result<Option<Message>> {
        // Your logic here
    }
}

routes!()

Create a new Router instance.

use wsforge_macros::routes;

let router = routes!()
    .default_handler(handler(my_handler));

Installation

This crate is typically used as a dependency of the main wsforge crate:

[dependencies]
wsforge = { version = "0.1.0", features = ["macros"] }

Or directly:

[dependencies]
wsforge-macros = "0.1.0"

Documentation

For complete documentation, see:

Requirements

  • Rust 1.70 or later
  • Part of the WsForge workspace

License

MIT License - see LICENSE for details.

Links