Reader Integration Kit (RIK)
The Reader Integration Kit (RIK) is a cross-platform SDK for programmatically interfacing with rf IDEAS credential readers. Used alongside rf IDEAS readers, RIK can be integrated into your platform to enable credential-based authentication, identity verification, and access control solutions using cards and mobile devices.
RIK provides a unified API across C++, C#, and Python, giving you direct control over reader connections, card data capture, device configuration, and firmware management -- without relying on keystroke emulation or third-party middleware.
Install
- C++ (CMake)
- C# (NuGet)
- Python (pip)
find_package(ReaderIntegrationKit REQUIRED)
target_link_libraries(my_app PRIVATE ReaderIntegrationKit::ReaderIntegrationKit)
dotnet add package rfIDEAS.ReaderIntegrationKit
pip install reader-integration-kit-linux-x86-64 # Linux
pip install reader-integration-kit-windows-x86-64 # Windows
Connect to a Reader
- C++
- C#
- Python
#include "Reader/AbstractReader.h"
#include "Reader/Reader.h"
using namespace Rik;
using namespace RikCommon;
int main() {
ReaderDefinition readerDef{};
readerDef.DeviceId.VendorId = 0x0C27;
readerDef.DeviceId.ProductId = 0x3BFA;
readerDef.ProtocolType = PROTOCOL_TYPE_FEATURE_REPORT;
auto handle = AbstractReader::CreateReaderInstance(readerDef, 3);
auto* app = AbstractReader::GetInstance(handle);
app->Init();
auto metadata = app->GetMetadataStruct();
std::cout << metadata.PartNumber << std::endl;
app->Close();
AbstractReader::DestroyInstance(handle);
}
using rfIDEAS.ReaderIntegrationKit;
using rfIDEAS.ReaderIntegrationKit.Objects;
using rfIDEAS.ReaderIntegrationKit.Enum;
var readerDef = new ReaderDefinition {
DeviceId = new DeviceId { VendorId = 0x0C27, ProductId = 0x3BFA },
ProtocolType = ProtocolType.FeatureReport,
SerialPortSettings = new SerialPortSettings()
};
using var app = new Reader(readerDef, retryCount: 3);
app.Init();
var metadata = app.GetMetadata();
Console.WriteLine(metadata.PartNumber);
from reader_integration_kit.facade import Reader
from reader_integration_kit.structures import ReaderDefinition, DeviceId, SerialPortSettings
from reader_integration_kit.enum import ProtocolType
reader_def = ReaderDefinition(
DeviceId=DeviceId(VendorId=0x0C27, ProductId=0x3BFA),
ProtocolType=ProtocolType.FEATURE_REPORT,
SerialPortSettings=SerialPortSettings()
)
with Reader(reader_def, retry_count=3) as app:
app.init()
metadata = app.get_metadata()
print(metadata.get("PartNumber"))
See Supported Readers for the full list of supported readers.
Platforms
| Platform | USB | Serial |
|---|---|---|
| Windows x64 | Yes | Yes |
| Linux x64 | Yes | Yes |
Next Steps
- Installation -- Detailed install guides for NuGet, pip, CMake, zip, and Makefile
- Quick Start -- Full walkthrough for all languages
- API Reference -- Complete API surface for C++, C API, C#, and Python
- Examples -- Working code for every operation