MQTT file transfer library with progress tracking, checksum validation and simple receiver/transmitter APIs.
npm install mqtt-file-transferA simple Node.js module for transferring files over MQTT using streams.
Supports multiple concurrent transfers and verifies file integrity with SHA-256 checksums.
- Stream files via MQTT in chunks
- Emit progress events
- Verify checksum and file size
- Support multiple concurrent transfers
``bash`
npm install mqtt-file-transfer
`ts
import { createReadStream } from "fs";
import mqtt from "mqtt";
import { MqttTransmitter } from "mqtt-file-transfer";
const client = mqtt.connect("mqtt://localhost:1883");
const stream = createReadStream("path/to/file.txt");
const transmitter = new MqttTransmitter({
client,
topic: "file-transfer",
stream,
});
transmitter.on("progress", (percent) => console.log("progress", percent));
transmitter.on("done", ({ fileName, checksum }) =>
console.log("done", fileName, checksum)
);
transmitter.start();
`
`ts
import mqtt from "mqtt";
import { MqttReceiver } from "mqtt-file-transfer";
const client = mqtt.connect("mqtt://localhost:1883");
const receiver = new MqttReceiver({
client,
topic: "file-transfer",
outputDir: "./downloads",
});
receiver.on("start", (fileName) => console.log("started", fileName));
receiver.on("progress", (percent) => console.log("progress", percent));
receiver.on("done", ({ fileName, checksum }) =>
console.log("done", fileName, checksum)
);
receiver.on("error", (err) => console.error("error", err));
receiver.start();
``
MIT