Home / Open Source / OpenRFID Middleware — Multi-Reader Edge Gateway
Edge Middleware & Gateways C# 12 / .NET 8 & 10 LTS / ASP.NET Core License: MIT v2.1.0

OpenRFID Middleware — Multi-Reader Edge Gateway

Modular, high-performance .NET 8 / 10 LTS RFID edge middleware connecting fixed readers to REST APIs, MQTT brokers, & WebSockets.

Quick Clone / Terminal Setup git / bash
git clone https://github.com/rfidsoftwares/OpenRFID-Middleware.git && dotnet build OpenRFID.slnx
Live Video Laboratory & Tutorials

Watch Video Walkthrough Before Using

HD 1080p • Technical Walkthrough

OpenRFID Middleware Tutorial: Edge Gateway & ERP Integration

View Dedicated Video Page & Notes →

Learn how to configure multi-vendor fixed reader drivers (Impinj, Zebra), tune sliding-window deduplication, and setup SQLite WAL offline buffers.

Project Overview & Architecture

Enterprise-grade, modular open-source RFID edge middleware engineered in .NET 8/10 LTS to bridge multi-vendor fixed RFID reader hardware with modern cloud and on-premise enterprise applications. Features plug-and-play driver plugins for LLRP, Impinj Octane, Zebra FX Series, Identium, Alien, TCP/UDP sockets, and Serial RS232/RS485. Includes high-throughput tag stream processing (1,000+ tags/sec), configurable sliding-window deduplication (5–15 seconds), shift-based unique tag rules, RSSI power thresholding, and EPC regex filters. Dispatches tag streams via dynamic Liquid/Handlebars templated HTTP payloads (GET, POST, PUT, PATCH), high-speed MQTT pub/sub topics, and real-time WebSockets with persistent offline SQLite WAL disk buffering for zero data loss during network outages.

4-Tier Edge Pipeline Architecture

1. Driver Layer

Hardware Ingestion

Binds multi-vendor readers via LLRP, Octane, Zebra FX SDK, or TCP/Serial sockets to stream raw tag reads.

2. Filtering & Dedup

Stream Normalization

Applies sliding-window deduplication, RSSI signal masks, antenna grouping, and EPC regex validation.

3. Offline Buffer

SQLite WAL Queue

Stores validated tag transactions to local disk when network fails; handles tag storms up to 1,000+ tags/sec.

4. Dispatch Engine

HTTP / MQTT Output

Formats dynamic Liquid/Handlebars JSON/XML envelopes and posts via HTTP Webhooks or publishes to MQTT topics.

Monorepo Packages (8)

NPM Monorepo
OpenRFID.Core v2.1.0

Base reader abstraction interfaces, pipeline dispatcher, and event loop.

dotnet add package OpenRFID.Core
OpenRFID.Drivers.Llrp v2.1.0

LLRP protocol driver for Impinj Speedway, Zebra FX, and Alien fixed readers.

dotnet add package OpenRFID.Drivers.Llrp
OpenRFID.Drivers.Zebra v2.1.0

Native Zebra RFID3 API driver for FX9600, FX7500, and ATR700 overhead readers.

dotnet add package OpenRFID.Drivers.Zebra
OpenRFID.Drivers.Impinj v2.1.0

Impinj Octane SDK wrapper supporting R700, R420, and xArray spatial antennas.

dotnet add package OpenRFID.Drivers.Impinj
OpenRFID.Filters.SlidingWindow v2.1.0

Concurrent sliding-window tag deduplication engine with memory recycling.

dotnet add package OpenRFID.Filters.SlidingWindow
OpenRFID.Dispatchers.Http v2.1.0

Liquid/Handlebars templated HTTP POST/PUT webhook dispatcher with retry policies.

dotnet add package OpenRFID.Dispatchers.Http
OpenRFID.Dispatchers.Mqtt v2.1.0

MQTT v5.0 telemetry client with topic partitioning and QoS level 1 guarantees.

dotnet add package OpenRFID.Dispatchers.Mqtt
OpenRFID.Storage.SqliteWal v2.1.0

Encrypted SQLite Write-Ahead-Log offline ring buffer for fail-safe transactions.

dotnet add package OpenRFID.Storage.SqliteWal

Feature Benchmark: OpenRFID Solution vs. Proprietary Alternatives

Feature Capability OpenRFID Solution (MIT) Commercial Paid Solutions Hardware Rig / Manual
Licensing Model 100% Free & Open Source (MIT) Commercial Tier ($2,500 - $10,000 / Site) Vendor-locked firmware only
Reader Vendor Freedom ✓ Impinj, Zebra, Alien, Identium, Hopeland Often restricted to single vendor hardware 100% proprietary firmware
Offline Resiliency ✓ Embedded SQLite WAL Queue with Auto-Sync Basic RAM buffer (lost on power loss) Limited internal flash (drops on overflow)
Payload Customization ✓ Dynamic Liquid/Handlebars JSON/XML Templates Rigid fixed JSON schema Fixed binary or raw string
Deployment Flexibility ✓ Docker Container, Windows Service, Linux Daemon Heavy Windows Server VM requirement Embedded on-reader only

CLI Arguments & Configuration Reference

Parameter / Flag Type Default Description & Action
--urls <url> string "http://0.0.0.0:5180" Kestrel HTTP listening URL for REST API & Swagger UI.
--config <path> filepath "./config/appsettings.json" Path to primary reader and dispatcher JSON config.
--dedup-window <sec> integer 5 Sliding deduplication window duration in seconds.
--db-path <path> filepath "./data/queue.db" SQLite WAL persistent offline buffer storage path.
--mqtt-host <url> string "mqtt://localhost:1883" Target MQTT broker connection string.

Code & Integration Blueprint

Copyable starter templates, CLI flags, and CI/CD pipelines:

Program.cs
using OpenRFID.Core.Drivers;
using OpenRFID.Core.Engine;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

// 1. Initialize Multi-Reader Manager
var readerManager = new ReaderManager();

// 2. Connect Zebra FX9600 8-Port Reader
readerManager.RegisterReader(new ZebraFxDriver(new ReaderConfig {
    Host = "192.168.1.150",
    Port = 5084,
    Antennas = 8,
    TxPower = 30.0
}));

// 3. Configure Sliding Deduplication Window (5 Seconds)
readerManager.ConfigureFilter(new DeduplicationOptions {
    SlidingWindowSeconds = 5,
    MinRssiThreshold = -65.0,
    EpcPattern = "^3034[0-9A-F]{20}$"
});

app.Run();

Technical Specifications & Runtime Environment

Target Architecture C# 12 / .NET 8 & 10 LTS / ASP.NET Core • MIT Open Source License
Supported Protocols REST API, WebSockets, MQTT, TCP Raw Sockets, Serial RS232
Reader Hardware Support Impinj Speedway R420/R700, Zebra FX9600/FX7500, Identium, Alien ALR-F800
Throughput Capacity 1,000+ tags/second concurrent sliding-window stream processing
Payload Templating Liquid & Handlebars dynamic JSON, XML, Form-Data & CSV formatting
Offline Storage Engine Encrypted SQLite Write-Ahead-Log (WAL) queue with auto-reconnect sync

Key Features & Capabilities

  • ✓ Unified Multi-Vendor Reader Driver Plugins (LLRP, Impinj Octane, Zebra FX, Identium, Alien)
  • ✓ Intelligent Sliding-Window Deduplication (5–15s Debounce, Calendar Day, Shift Unique Rules)
  • ✓ Dynamic Liquid & Handlebars HTTP Payload Templating (Custom JSON, XML, Form-Data, CSV)
  • ✓ Persistent Offline SQLite WAL Disk Queue with Deterministic Resynchronization
  • ✓ High-Speed MQTT Pub/Sub Telemetry Broker Bridge with Topic Partitioning
  • ✓ Web-Based Operational Dashboard & Live WebSocket Tag Telemetry Console
  • ✓ Full OpenAPI / Swagger REST Management API (http://localhost:5180/swagger)
  • ✓ Ready-to-Deploy Docker & Docker Compose Containerized Setup

Frequently Asked Questions

How does the sliding-window deduplication engine prevent duplicate ERP transactions? ↓

The middleware implements a concurrent high-performance sliding-window ring buffer. When a tag is read 50 times in 2 seconds under a portal antenna, the filter normalizes the burst into a single deterministic scan event, eliminating phantom transactions and duplicate stock journal bookings in your ERP.

Which fixed RFID reader hardware brands are supported out-of-the-box? ↓

OpenRFID Middleware provides native C# driver plugins for Impinj (Speedway R420, R700, xArray via Octane SDK / LLRP), Zebra (FX9600, FX7500 via RFID3), Identium, Alien ALR-F800, Hopeland, and generic raw TCP/UDP serial bridges.

How does SQLite WAL offline buffering prevent data loss during network drops? ↓

When backend cloud APIs or MQTT brokers become unreachable, the edge daemon instantly diverts incoming tag transactions to an encrypted local SQLite Write-Ahead-Log (WAL) queue. As soon as connectivity restores, an automated background worker flushes the backlog with deterministic SHA-256 idempotency.

Can I customize HTTP POST payloads using Liquid or Handlebars templates? ↓

Yes. OpenRFID Middleware features dynamic payload templating. You can define custom JSON, XML, Form-Data, or CSV body templates with variables like `{{Tag.Epc}}`, `{{Tag.Rssi}}`, `{{Tag.AntennaId}}`, and custom authorization headers.

Can OpenRFID Middleware trigger GPIO portal indicator lights and alarms? ↓

Yes. The middleware includes a GPIO controller service that triggers external 24V relay lights, buzzers, and automated conveyor diverters based on tag validation rules (e.g., green for authorized pallet, red for unauthorized transit).

How do I deploy OpenRFID Middleware on Docker or edge industrial PCs? ↓

You can deploy it via Docker Compose with a single command: `docker compose up -d`. The lightweight containerized ASP.NET Core image consumes < 65 MB RAM and runs smoothly on Raspberry Pi 4, industrial Intel NUCs, or Linux edge servers.

Application & SDK Preview

OpenRFID Middleware for RFID reader integration

Paid Customization & Free Help

We offer free community help on GitHub issues and discussions. If you need bespoke features, customized mobile apps, or dedicated on-site deployment, contact us for paid enterprise integration services.

🖥️ OpenRFID Studio Preview 1 / 5
Hi, Can I Help ? 💬
AI