UAREU Biometric Library
Modern Node.js library for DigitalPersona 4500 biometric devices, focused on FeatureSet matching and comparison.
Features
- ✅ FeatureSet matching and comparison
- ✅ High-performance biometric scoring
- ✅ TypeScript support with full type definitions
- ✅ Modern async/await API
- ✅ Windows x64 support
- ✅ Lightweight and focused on core functionality
Installation
npm install uareu-biometric
Quick Start
import { FeatureSetMatcher } from 'uareu-biometric';
const matcher = new FeatureSetMatcher();
// Initialize the matcher
await matcher.initialize();
// Compare two FeatureSets
const result = await matcher.matchFeatureSets(featureSet1, featureSet2);
console.log(`Match score: ${result.score}`);
console.log(`Is match: ${result.isMatch}`);
console.log(`Confidence: ${result.confidence}`);
API Reference
FeatureSetMatcher
Main class for biometric matching operations.
Methods
initialize(): Promise<void>
Initializes the biometric engine. Must be called before any matching operations.
matchFeatureSets(fs1: Buffer, fs2: Buffer): Promise<FeatureSetMatch>
Compares two FeatureSets and returns match results.
Parameters:
fs1
: First FeatureSet as Bufferfs2
: Second FeatureSet as Buffer
Returns: Promise<FeatureSetMatch>
validateFeatureSet(featureSet: Buffer): Promise<boolean>
Validates if a Buffer contains a valid FeatureSet.
getFeatureSetInfo(featureSet: Buffer): Promise<FeatureSetData>
Extracts information from a FeatureSet.
Types
FeatureSetMatch
interface FeatureSetMatch {
score: number; // Similarity score (0-100000)
threshold: number; // Recommended threshold for matching
isMatch: boolean; // Whether it's considered a match
confidence: number; // Confidence level (0-1)
}
FeatureSetData
interface FeatureSetData {
format: number; // FeatureSet format
data: Buffer; // Raw FeatureSet data
size: number; // Data size in bytes
}
Requirements
- Node.js 16.0.0 or higher
- Windows x64 operating system
- DigitalPersona SDK compatible FeatureSets
Error Handling
The library provides structured error handling:
import { FeatureSetMatcher, ErrorHandler } from 'uareu-biometric';
try {
const matcher = new FeatureSetMatcher();
await matcher.initialize();
const result = await matcher.matchFeatureSets(fs1, fs2);
} catch (error) {
if (error instanceof ErrorHandler) {
console.error('Biometric error:', error.message);
console.error('Details:', error.originalError);
} else {
console.error('Unexpected error:', error);
}
}
Advanced Usage
For advanced use cases, you can access the underlying UareU library:
import { UareU } from 'uareu-biometric';
const uareu = UareU.getInstance();
await uareu.loadLibs();
// Access low-level functionality...
Platform Support
- ✅ Windows x64
- ❌ Windows x32 (not supported)
- ❌ macOS (not supported)
- ❌ Linux (not supported)
License
MIT License - see LICENSE file for details.
Contributing
This library focuses exclusively on FeatureSet matching functionality. For bug reports or feature requests related to core matching capabilities, please open an issue.
Support
For technical support or questions about FeatureSet matching, please refer to the DigitalPersona SDK documentation or create an issue in this repository.