ufex/Ufex

Universal File Explorer

4

stars

106

commits

C#

primary language

May 11, 2026

updated

ufexapp.com/
developer-tools
file-format
file-format-detection
hex-viewer
reverse-engineering

README

Ufex — Universal File Explorer

Ufex is a cross-platform desktop application for inspecting the internal structure and metadata of many different file formats. Open any file and instantly see its hex data, parsed structure, visual layout, and validation results — all in one place.

Demo

Getting Started

Downloads: https://github.com/ufex/Ufex/releases

Features

  • File Format Identification — Automatically identifies file types using a signature-based database of magic bytes, file extensions, and MIME types. The database is defined in XML config files and can be extended without writing any code.
  • Hex Viewer — Browse the raw bytes of any file with synchronized hex and ASCII columns.
  • Info — View file system attributes (size, timestamps, permissions) and format-specific metadata at a glance.
  • Structure — Explore parsed file segments in an interactive tree view. Select any node to see its fields, offsets, and decoded values in a detail panel.
  • Visual — See graphical representations of file data such as file maps that show how a file is divided into segments, embedded image previews, and more.
  • Validation — Review format-specific validation results (info, warnings, errors) to check if a file conforms to its specification.
  • Number Format Toggle — Switch between hexadecimal, decimal, binary, and ASCII display modes for numeric values throughout the UI.
  • Drag & Drop — Open files by dragging them onto the window or by using the file browser.
  • Search — Find byte patterns and text within files.
  • Supported Formats - JPEG, GIF, PNG, BMP, HEIF, PDF, DOCX, XLSX, PPTX, ZIP, GZIP, WAV, AVI, 3GP, and more...

Plugin Architecture

Ufex is designed to be extended via .NET assembly plugins. Each plugin teaches Ufex how to parse, display, and validate a specific file format (for example PNG, ZIP, BMP, or PDF).

Plugins are standard .NET class library projects that reference the Ufex.API library and are loaded dynamically at runtime from the plugins/ directory. This means third-party developers can add support for new file formats without modifying the core application.

Tech Stack

ComponentTechnology
LanguageC#
Runtime.NET 10
UI FrameworkAvalonia UI 11.2
UI ThemeAvalonia Fluent Theme
IconsFluent Icons
Text/Code EditingAvaloniaEdit
CI/CDGitHub Actions
Installer (Windows)MSI via WiX Toolset
Installer (macOS)DMG (Intel x64 + Apple Silicon arm64)
Installer (Linux)AppImage

Project Structure

ufex/
├── src/
│   ├── Ufex.Desktop           # Main desktop application (Avalonia)
│   ├── Ufex.API               # Public API & base classes for plugins
│   ├── Ufex.FileType          # File type identification engine
│   ├── Ufex.Hex               # Hex viewer library
│   └── Ufex.Controls.Avalonia # Reusable Avalonia UI controls
├── config/                    # XML file-type signature database
├── ext/                       # Extension plugin source (git submodules)
├── tests/                     # Unit tests
├── build/                     # Build output staging
└── .github/workflows/         # CI/CD pipeline

Getting Started (Development)

Prerequisites

Build & Run

# Clone the repository
git clone https://github.com/ufex/Ufex.git
cd Ufex

# Restore dependencies and build
dotnet build ufex.sln

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

Running Tests

dotnet test ufex.sln

Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository and create a feature branch.
  2. Follow the code style:
    • Use tabs for indentation.
    • Use PascalCase for classes, methods, properties, and constants.
    • Use camelCase for local variables and parameters.
  3. Write tests for new functionality where applicable.
  4. Submit a pull request with a clear description of your changes.

Ways to Contribute

  • Add file type signatures — Extend the XML config files in config/ to identify more file formats (no C# required).
  • Build a plugin — Create a new .NET class library that parses and displays a file format.
  • Improve the core app — Bug fixes, UI improvements, new features for the desktop application.
  • Documentation — Improve or add documentation for the project or individual file formats.

License

Ufex is licensed under the Apache License 2.0.

Contributors

epotocko

106 commits

ufex/Ufex

Universal File Explorer

4

stars

106

commits

C#

primary language

May 11, 2026

updated

ufexapp.com/
developer-tools
file-format
file-format-detection
hex-viewer
reverse-engineering

README

Ufex — Universal File Explorer

Ufex is a cross-platform desktop application for inspecting the internal structure and metadata of many different file formats. Open any file and instantly see its hex data, parsed structure, visual layout, and validation results — all in one place.

Demo

Getting Started

Downloads: https://github.com/ufex/Ufex/releases

Features

  • File Format Identification — Automatically identifies file types using a signature-based database of magic bytes, file extensions, and MIME types. The database is defined in XML config files and can be extended without writing any code.
  • Hex Viewer — Browse the raw bytes of any file with synchronized hex and ASCII columns.
  • Info — View file system attributes (size, timestamps, permissions) and format-specific metadata at a glance.
  • Structure — Explore parsed file segments in an interactive tree view. Select any node to see its fields, offsets, and decoded values in a detail panel.
  • Visual — See graphical representations of file data such as file maps that show how a file is divided into segments, embedded image previews, and more.
  • Validation — Review format-specific validation results (info, warnings, errors) to check if a file conforms to its specification.
  • Number Format Toggle — Switch between hexadecimal, decimal, binary, and ASCII display modes for numeric values throughout the UI.
  • Drag & Drop — Open files by dragging them onto the window or by using the file browser.
  • Search — Find byte patterns and text within files.
  • Supported Formats - JPEG, GIF, PNG, BMP, HEIF, PDF, DOCX, XLSX, PPTX, ZIP, GZIP, WAV, AVI, 3GP, and more...

Plugin Architecture

Ufex is designed to be extended via .NET assembly plugins. Each plugin teaches Ufex how to parse, display, and validate a specific file format (for example PNG, ZIP, BMP, or PDF).

Plugins are standard .NET class library projects that reference the Ufex.API library and are loaded dynamically at runtime from the plugins/ directory. This means third-party developers can add support for new file formats without modifying the core application.

Tech Stack

ComponentTechnology
LanguageC#
Runtime.NET 10
UI FrameworkAvalonia UI 11.2
UI ThemeAvalonia Fluent Theme
IconsFluent Icons
Text/Code EditingAvaloniaEdit
CI/CDGitHub Actions
Installer (Windows)MSI via WiX Toolset
Installer (macOS)DMG (Intel x64 + Apple Silicon arm64)
Installer (Linux)AppImage

Project Structure

ufex/
├── src/
│   ├── Ufex.Desktop           # Main desktop application (Avalonia)
│   ├── Ufex.API               # Public API & base classes for plugins
│   ├── Ufex.FileType          # File type identification engine
│   ├── Ufex.Hex               # Hex viewer library
│   └── Ufex.Controls.Avalonia # Reusable Avalonia UI controls
├── config/                    # XML file-type signature database
├── ext/                       # Extension plugin source (git submodules)
├── tests/                     # Unit tests
├── build/                     # Build output staging
└── .github/workflows/         # CI/CD pipeline

Getting Started (Development)

Prerequisites

Build & Run

# Clone the repository
git clone https://github.com/ufex/Ufex.git
cd Ufex

# Restore dependencies and build
dotnet build ufex.sln

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

Running Tests

dotnet test ufex.sln

Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository and create a feature branch.
  2. Follow the code style:
    • Use tabs for indentation.
    • Use PascalCase for classes, methods, properties, and constants.
    • Use camelCase for local variables and parameters.
  3. Write tests for new functionality where applicable.
  4. Submit a pull request with a clear description of your changes.

Ways to Contribute

  • Add file type signatures — Extend the XML config files in config/ to identify more file formats (no C# required).
  • Build a plugin — Create a new .NET class library that parses and displays a file format.
  • Improve the core app — Bug fixes, UI improvements, new features for the desktop application.
  • Documentation — Improve or add documentation for the project or individual file formats.

License

Ufex is licensed under the Apache License 2.0.

See what people are saying

Contributors

epotocko

106 commits

Languages

C#

98.5%

Rich Text Format

1.0%