30 open-source projects similar to sindresorhus/file-type, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
python-magic is a C-binding wrapper that provides a Python interface for the libmagic system library. It functions as a file signature analyzer and MIME type detector, identifying file formats by comparing header bytes against a database of known binary signatures. The library enables the identification of file types from both file paths and raw data buffers. It supports custom file signature matching through the injection of user-provided magic databases, allowing for the detection of specialized or proprietary formats. The project covers binary data analysis and MIME type mapping to transl
Tika is a content analysis toolkit and Java library designed for detecting and extracting metadata and text from thousands of different file types. It functions as a universal document text extractor and metadata extraction engine, converting complex files into plain text or XHTML. The system employs a specialized MIME type detector that identifies document formats using magic bytes and metadata to determine the correct parser. It serves as an OCR integration gateway, connecting to external text recognition tools to extract content from image files. The project covers a broad range of extrac
MadelineProto is an asynchronous PHP library that provides a programmatic interface for interacting with the Telegram API using the MTProto protocol, the same protocol used by official Telegram clients. It functions as both a Telegram bot SDK and a userbot automation library, enabling PHP applications to connect to Telegram as either a bot account or a regular user account, sending and receiving messages, media, and other data directly without relying on the Bot API intermediary. The library is built on an event-driven architecture with Amp v3 fiber-based concurrency, allowing for non-blockin
Kreuzberg is a document extraction engine that converts PDFs, Office files, images, and over 90 other formats into clean, structured text and metadata. It is built around a compiled Rust core that can be used as a native library, a command-line tool, a REST API server, or a WebAssembly module for browser-based processing. The system is designed to run entirely on self-hosted infrastructure, with no data leaving the user's environment. What distinguishes Kreuzberg is its breadth of integration surfaces and its pipeline architecture. It exposes extraction capabilities through native bindings fo
Mime Type Detection is a PHP library for determining and mapping media types from file contents, paths, or extensions using fallback lookup strategies. It provides utilities for inspecting file metadata and resolving file formats within PHP applications. The library supports bidirectional mapping between file extensions and media types through static community-curated mapping tables alongside content-based inspection. It includes extension-to-media-type mapping, reverse lookups from media types to valid file extensions, and fallback resolution chains that attempt content inspection before fal
ripgrep-all is a command-line utility that extends ripgrep to perform regular expression searches across binary files, compressed archives, and media formats. It functions as a universal text extractor that converts non-plain-text formats, such as PDFs, E-books, and Office documents, into searchable text. The tool uses a system of adapters to transform binary data into plain text and utilizes a local database to cache these extracted versions, accelerating repeated search operations. It identifies file types by analyzing header magic bytes rather than relying on file extensions. The project
File is a command-line utility and C library designed to determine the precise file format and media type of unknown files by inspecting their internal byte sequences, binary signatures, and hierarchical pattern rules rather than relying on file extensions. The software evaluates magic number signature matching and complex multi-byte offsets to classify files accurately. The engine supports recursive archive inspection, automatically unpacking compressed archive structures on the fly to analyze and identify internal nested file payloads. Human-readable pattern definitions can be compiled into
UniExtract2 is a suite of tools designed for universal archive extraction, batch decompression, and file format analysis. It retrieves files from various compressed formats, software installers, disk images, and game archives into local directories. The project includes a file format analyzer that identifies file types by scanning internal contents and headers without requiring full extraction. It also features an archive password decrypter that attempts to recover access to protected archives using a predefined list of common passwords. The tool supports bulk decompression workflows through
EmDash is an open-source content management system built on Astro that combines a visual admin panel with a plugin-driven architecture and server-side rendering. It provides a complete content management system with structured content modeling, a rich text editor using Portable Text format, and a TypeScript API for type-safe content queries. The system supports authentication through passkeys, OAuth 2.1, and external providers, with role-based access control and fine-grained permission scopes. What distinguishes EmDash is its plugin development framework, which supports both native plugins ru
This project is a declarative framework and domain-specific language for managing Emacs Lisp packages. It functions as a startup performance optimizer by grouping package installation, variable settings, and keybindings into single blocks to reduce initial boot time. The system distinguishes itself through a deferred loading framework that delays package execution until specific keys, hooks, or modes are triggered. It uses a macro-based declaration syntax to organize configuration and automate the generation of autoloads, ensuring packages are only loaded when they are actually required. The
This project is a collection of management interfaces and platforms for network-connected hardware. It functions as a firmware extension platform, a network storage operating system manager, and a network routing administrator. The system enables the installation of open-source plugins and third-party add-ons to expand device capabilities. It provides a management interface for network attached storage, allowing for remote file management and peer-to-peer media streaming. Broad capabilities cover network routing configuration through policy-based routing and dynamic DNS, as well as firmware
RuneLite is an open-source game client for OldSchool RuneScape. It serves as a community-driven alternative to the official software, functioning as a modified client that allows for deep customization and feature extension. The project provides a programmable game plugin system that enables the development and injection of custom tools directly into the running game environment. This framework allows for the creation of interface enhancements and the integration of custom logic to modify client behavior. The system also includes a game cache data manager for reading and manipulating local a
This project is a PHP-based digital product automation platform designed for the sale and instant delivery of digital goods and software licenses. It functions as an automated storefront engine that manages inventory, flash sales, and the delivery of account keys. The platform is delivered as a dockerized e-commerce environment, packaging the application, database, and cache layers into containers for consistent deployment. It features a plugin-based architecture for integrating multiple payment gateways and a multi-level affiliate system for tracking referrals and distributing recruitment co
go-flutter is a runtime and embedding library that enables Flutter applications to run natively on Windows, macOS, and Linux using Go and GLFW. It implements the Flutter Embedding API to render Flutter UIs on desktop platforms, providing a cross-platform desktop runtime that bridges Go and Dart code through standard Flutter method and event channels. The project includes a plugin framework that supports bidirectional communication between Go and Dart, allowing Go code to invoke Dart handlers and expose Go methods for Dart to call, with optional synchronous replies. It also provides event stre
Noctalia is a Wayland desktop shell and layer shell manager designed to coordinate bars, docks, and notification centers through a unified interface. It functions as a low-resource system controller and execution environment that maintains a minimal memory footprint for unobtrusive background operations. The project features a plugin-based extension system for adding custom widgets, launcher providers, and background services. It includes a real-time configuration engine that monitors files to update desktop appearance and behavior without requiring a restart. The system integrates with Wayl
Masuit.Tools is a comprehensive static utility library for .NET and ASP.NET Core development. It provides a broad collection of reusable helper methods and infrastructure components that cover common programming tasks without requiring dependency injection or instance management. The library is organized as flat utility classes, making its functionality directly accessible from anywhere in a project. The toolkit distinguishes itself through a wide range of integrated capabilities that go beyond typical utility libraries. It includes a multithreaded range-request file downloader with pause and
Xplorer is an AI-powered desktop file manager designed for navigating local and remote filesystems. It integrates large language model capabilities to provide file analysis, document summarization, and contextual explanations directly within the navigation interface. The application distinguishes itself through a plugin-based extensibility model and specialized integrations. It features a secure shell client for managing remote servers as local directories, a version control interface for visualizing Git commit graphs and branches, and a semantic search system that locates files based on mean
Ryven is a flow-based programming framework and visual scripting editor for Python. It provides a node-based graphical interface for designing and executing logic by connecting discrete functional nodes to build executable data pipelines. The system functions as an extensible visual logic tool, allowing for the development of custom Python nodes and the integration of interactive GUI widgets to expand scripting capabilities. It includes a node graph engine that supports both visual editing and headless execution, enabling scripts to run without a graphical user interface. The platform covers
Rushstack is a comprehensive toolset for managing large-scale TypeScript monorepos, providing a framework for build pipeline automation, dependency coordination, and static analysis. It functions as an incremental build orchestrator and management system designed to maintain consistency and performance across multiple packages in a shared workspace. The system distinguishes itself through an execution model based on directed acyclic graphs and content-hash-based incrementalism, which ensures only affected projects are rebuilt. It further optimizes development workflows via remote build artifa
Countly is a self-hosted product analytics and engagement platform that tracks user behavior across mobile, web, and desktop applications. It collects and analyzes device properties, user actions, and session lifecycle data to understand engagement patterns, while also providing crash reporting, push notification delivery, and A/B testing capabilities. The platform is designed for privacy-first deployment, with built-in consent management and the ability to run entirely on private infrastructure. The platform distinguishes itself through its comprehensive feature set that combines analytics w
Trumbowyg is a lightweight JavaScript WYSIWYG editor used to create and format rich-text and HTML content directly within a web browser. It serves as a client-side tool for generating semantic HTML markup and authoring web content. The project features a modular, plugin-based architecture that allows for the addition of new formatting commands and toolbar buttons. It provides a configurable interface where the toolbar layout can be customized via a predefined array and labels can be translated through localization files. The editor covers a wide range of content manipulation capabilities, in
Buildbot is a Python-based continuous integration framework and distributed build orchestrator. It functions as a build automation engine that coordinates the retrieval of source code, the execution of build steps, and the reporting of results through a central controller and a network of remote worker agents. The system is distinguished by a plugin-based extensibility architecture and a master-worker distribution model. It allows for dynamic build modification at runtime and supports a pluggable database backend for persisting system state and historical build data. The project covers a bro
Sonar is a mobile app debugging platform and extensible toolkit that allows developers to inspect the internal state, network traffic, and system logs of mobile devices via a desktop interface. It functions as a centralized system for monitoring application behavior and troubleshooting logic and performance issues. The platform is distinguished by a plugin-based extension system that enables the development of custom debugging tools. These plugins can visualize specific application data and facilitate event exchange between a mobile device and a computer. The toolkit covers several core obse
This project is a JetBrains IDE theme plugin and color scheme pack that implements a Material Design UI theme. It provides a comprehensive interface overhaul that replaces standard editor colors and icons with Material Design aesthetics. The plugin focuses on developer workspace personalization by allowing users to apply a consistent visual language to JetBrains development environments. It enables the customization of the IDE appearance through a collection of customizable palettes for code highlighting and user interface elements.
html-to-markdown is a tool that transforms HTML content and websites into Markdown text. It functions as an HTML to Markdown converter and a command line processor for converting files or standard input streams into Markdown documents. The project is an extensible conversion engine that allows for custom element rendering and the registration of plugins to modify the transformation process. It includes a content filter that uses CSS selectors to include or exclude specific HTML elements during conversion. The system covers broad capability areas including link resolution for relative URLs, r
Hearthstone Deck Tracker is a gaming companion application and collection manager for Windows. It serves as a game utility for tracking real-time gameplay data, managing card collections, and analyzing deck performance through match history and win rates. The application features a plugin-based architecture that allows for the addition of third-party logic to introduce custom tracking behaviors and automation triggers. For broadcasters, it provides a chroma-key compatible streaming overlay to display real-time game data on live video feeds. Its capabilities include importing deck lists from
PlotJuggler is an interactive time series visualization tool that loads, streams, and renders large datasets using hardware-accelerated OpenGL graphics. It functions as a multi-format data loader, supporting file formats such as CSV, ULog, and ROS bags, and also serves as a live data stream viewer that subscribes to real-time sources via MQTT, WebSockets, ZeroMQ, and UDP. The tool distinguishes itself through a plugin-based extensibility platform that allows users to add custom data sources, file formats, and processing capabilities. It includes a Lua scripting engine for creating custom data
EasyBangumi is an anime streaming management application for Android that aggregates content from multiple external sources into a single interface. It enables users to search for titles, manage a personal library of favorite series, and stream video content from various third-party providers. The application features a plugin-based extension system that allows for the integration of external media providers via repository links or dedicated installation files. This architecture enables the addition of new content sources and capabilities without modifying the core binary. The platform inclu
Blade is a lightweight Java MVC web framework built on an embedded Netty server. It packages the entire web application into a single executable JAR that starts the server on launch, following the MVC pattern with fast request routing and minimal configuration. The framework supports plugin-based extensibility, allowing third-party modules to add features like template rendering and static asset serving. The framework distinguishes itself through lambda-style route registration, where routes are defined using lambda expressions that map HTTP methods and URL patterns directly to handler functi
imove is a visual workflow orchestrator and domain-specific language designer. It provides a graphical canvas for mapping complex functional logic and designing operational workflows through a node-based interface. The system functions as a visual flowchart to code generator, converting logic diagrams into an executable domain-specific language for software development kits. It includes a custom logic node framework that allows for the integration of external plugins and the creation of custom functions to extend the available node library. The platform supports node-based logic design and r