Meshblu-Compatible IoT Mesh

FRESHBLU

Signal-driven device messaging. Built in Rust.

Public Server api.freshblu.org Protocol HTTP / WS / MQTT Runtime Rust + Axum
HTTP REST WebSocket MQTT 3.1.1
01 Capabilities
Messaging

Send messages between devices over HTTP, WebSocket, or MQTT. Subscriptions route events automatically.

Permissions

Fine-grained whitelists control who can discover, configure, send to, and receive from each device.

Multi-Protocol

Connect via REST API, persistent WebSocket, or MQTT broker. All protocols share the same device mesh.

Subscriptions

Subscribe to message.received, message.sent, configure.received, and more. Fan-out across connected clients.

Tokens

Generate multiple session tokens per device. Revoke individually or reset all. bcrypt-hashed storage.

Webhooks

Configure HTTP forwarders per event type. Outbound webhooks fire on message delivery, config changes, and more.

02 Quick Start
npm install freshblu or pip install freshblu or cargo add freshblu-client JS docs → Python docs → Rust docs →
javascript
<script src="https://unpkg.com/freshblu/dist/index.global.js"></script>
<script>
  const client = new FreshBluHttp('https://api.freshblu.org');

  // Register a device
  const device = await client.register({ type: 'sensor' });
  console.log(device.uuid, device.token);

  // Send a message
  client.setCredentials(device.uuid, device.token);
  await client.message({ devices: ['TARGET'], payload: { temp: 22.5 } });

  // Listen via WebSocket
  const ws = new FreshBlu('https://api.freshblu.org');
  ws.setCredentials(device.uuid, device.token);
  ws.on('message', (e) => console.log(e.payload));
  await ws.connect();
</script>
03 Stack
Rust Axum PostgreSQL Redis NATS SQLite Arduino SDK WASM Client