Skip to content

wct097/eft-viewer

Repository files navigation

EFT Viewer

An open-source, cross-platform viewer for Electronic Fingerprint Transmission (EFT) files based on the ANSI/NIST-ITL biometric data interchange standard.

Download

Download the latest release from the Releases page.

Self-contained builds are published for Windows, macOS, and Linux — no .NET runtime installation required.

Windows

Download EftViewer-vX.X.X-win-x64.zip, extract, and run EftViewer.Desktop.exe.

macOS

Download EftViewer-vX.X.X-osx-arm64.zip (Apple Silicon), extract, then:

chmod +x EftViewer.Desktop
./EftViewer.Desktop

The builds are not yet code-signed, so the first launch needs Finder → right-click → Open (or xattr -dr com.apple.quarantine EftViewer.Desktop) to clear Gatekeeper.

Linux

Download EftViewer-vX.X.X-linux-x64.zip, extract, then:

chmod +x EftViewer.Desktop
./EftViewer.Desktop

Screenshots

Type-4 Legacy Fingerprints Type-14 Ten-Print Card
Type-4 flats Type-14 tpcard

Overview

EFT files are used by the ATF, FBI, and other agencies for electronic fingerprint submission. This tool allows users to open, parse, and view the contents of EFT files including:

  • Transaction information (Type-1 records)
  • Descriptive/demographic data (Type-2 records)
  • Fingerprint images (Type-4, Type-14 records) with WSQ decompression
  • Additional biometric data records

Project Status

v0.1.0 - Initial release

Features

  • Open and parse EFT file structure
  • Display record hierarchy and metadata fields
  • Decode and display WSQ-compressed fingerprint images
  • Support for Type-4 (legacy) and Type-14 fingerprint records
  • Windows desktop application

Future Goals

  • PNG export for fingerprint images
  • macOS and Linux builds (self-contained, build + test in CI)
  • Field validation against ANSI/NIST-ITL spec
  • Type-10 (face/SMT) and Type-15 (palmprint) support
  • Code signing via SignPath.io (eliminate Windows SmartScreen warning)

Technology Stack

Component Technology Notes
Core Parser C# / .NET Standard 2.0 Shared library, broad compatibility
Desktop UI Avalonia UI / .NET 10 Cross-platform (Windows, macOS, Linux)
Mobile (future) .NET MAUI Android/iOS
WSQ Codec Managed C# (Managed.Wsq-derived) FBI wavelet compression standard, no native deps
Alt CLI Python Scripting/automation use cases

Why These Choices

Avalonia UI over MAUI for desktop: More mature cross-platform desktop support today. MAUI excels at mobile but Avalonia provides better Windows/macOS/Linux parity for desktop apps.

.NET Standard 2.0 for core library: Maximum compatibility across runtimes. The parser can be consumed by desktop, mobile, or even older .NET Framework projects if needed.

EFT / ANSI-NIST-ITL Format Reference

The ANSI/NIST-ITL standard (NIST Special Publication 500-290) defines a record-based format for biometric data interchange.

Record Types

Type Description
1 Transaction information (required, exactly one)
2 User-defined descriptive text
4 Grayscale fingerprint image (legacy, 8-bit)
10 Face, SMT (scars/marks/tattoos) image
14 Variable-resolution fingerprint image (current standard)
15 Variable-resolution palmprint image

Structure

Records contain tagged fields in the format Type.Field:Value. Fields are separated by control characters:

Separator Hex Purpose
GS 0x1D Group separator (between fields)
RS 0x1E Record separator (between subfields)
US 0x1F Unit separator (between information items)
FS 0x1C File separator (end of record)

Image Encoding

Fingerprint images in Type-4 and Type-14 records are typically WSQ compressed (Wavelet Scalar Quantization), an FBI-developed format optimized for fingerprint ridge detail at ~15:1 compression.

WSQ Resources:

Sample Files

The samples/ directory contains NIST-provided test files:

  • nist-type-4-14-flats.eft - Legacy Type-4 and modern Type-14 fingerprint records
  • nist-type-14-tpcard.eft - Ten-print card with Type-14 records and quality metrics

See samples/README.md for details and links to additional NIST test data.

Building from Source

Prerequisites

  • .NET 10 SDK or later
  • Visual Studio 2022 or VS Code with C# Dev Kit (optional)

Build and Run

# Clone the repository
git clone https://github.com/wct097/eft-viewer.git
cd eft-viewer

# Restore dependencies
dotnet restore

# Build
dotnet build

# Run the desktop application
dotnet run --project src/EftViewer.Desktop

# Run tests
dotnet test

Solution Structure

EftViewer.sln
├── src/
│   ├── EftViewer.Core/          # Parser library (.NET Standard 2.0)
│   └── EftViewer.Desktop/       # Avalonia UI application (.NET 10)
└── tests/
    └── EftViewer.Core.Tests/    # Unit tests (xUnit)

AI-Assisted Development

This project is developed with AI assistance. Guidance for AI assistants lives in CLAUDE.md and docs/project_context.md.

License

Copyright 2026 William Tyler

Licensed under the Apache License, Version 2.0. See LICENSE for details.

About

Open-source cross-platform viewer for EFT / ANSI-NIST-ITL biometric files — view fingerprint (WSQ), demographic, and transaction records. Windows · macOS · Linux.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages