Skip to content
FrCyndaPublic

About

Fast file explorer and instant file search for Windows. An Explorer replacement and Everything alternative with tabs, split panes, previews and full-text content search. Native Rust + Direct2D.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Mosaic, a fast file explorer and instant file search for Windows: every file on your PC, before you finish typing. An animated tour of a made-up gamer's PC, full of Elden Ring and Minecraft files: searching 2.5 million files as you type, previews of spreadsheets, audio, PDF, video and images, search inside files and by metadata, list, grid and Windows-style views, merging windows into tabs, dragging tabs onto one another to split a tab into several folders, and live theme switching
Animated illustration of the real interface, on a made-up gamer's PC. Elden Ring and Minecraft are trademarks of their respective owners; Mosaic is not affiliated with them.

Windows 10 | 11 Built with Rust Native Direct2D UI 75 languages

⚡ Blazingly fast. Tiny memory. Instant search.
Mosaic is a fast file explorer for Windows 10 and 11, built around a search engine: an Explorer replacement and an alternative to Everything.
It reads your NTFS drives straight from the Master File Table, keeps up with every change through the USN journal, and answers searches across millions of files in milliseconds.
Tabs, split panes, previews and full-text search, in a native window with no web view and no Electron.

Features · Search language · Keys · How it works · Install · Build


🚀 Why Mosaic

Type, and it's there. Every file on every NTFS drive, searched and ranked in about 12 ms. No indexing wait, no spinner, no "searching…". Results change as you type, and files you just saved are already in.

Search inside your files, too. Text, code, Word, Excel, PowerPoint and PDF, in the same box as filenames. Everything-style syntax, regex, dates, sizes, camera models and duplicates, all in one query.

It replaces Explorer, not just sits next to it. Folders, drives, Win+E and every Save / Open window in every program open in Mosaic. Switch it off in one click, and uninstalling gives it all back.

Small, on purpose. One 9.5 MB native app. No Electron, no web view, no GUI framework. It starts in under half a second and the window sits around 50 MB.

Gentle on your SSD. A 24-byte record per file, a compressed cache that loads in one read, and changes appended to a log only when something changed. No rescans, no constant writing.

Yours to keep. Free, open source, MIT. 75 languages, 16 themes, updates announced in the app, and nothing sent anywhere except one release check against GitHub.

⚡ By the numbers

Measured on a Windows 11 PC with a 1 TB NVMe system drive. The times are median round trips to the index service.

2,541,861 files and folders indexed on one drive
≈ 12 ms to search and rank all of them for a new query (win, folders first)
0.3 ms to fetch the next page of results
24 bytes per file or folder in the name index
0 rescans after startup: changes stream in from the USN journal
< 0.4 s from launch to a window on screen
≈ 50 MB of memory for the window, with the index in a separate service
9.5 MB for the whole app: native Win32 and Direct2D, no browser engine, no GUI framework

✨ Features

🔎 Search like Everything, then some

  • Instant filename search across every fixed NTFS drive, live as files change
  • Everything-style syntax: | OR, ! NOT, ( ) groups, "phrases", * ? wildcards
  • Regex, match case, whole word, ignore diacritics, each on one key
  • Filters for type, size, dates, attributes, path, folder relations and duplicates
  • A date picker for modified, created and accessed dates: on, before, after, between, or quick periods like Last month
  • Right-click any search option for what it does, with examples found and not found

📄 Full-text content search

  • Searches inside text, code, Office (docx xlsx pptx odt…), PDF and legacy Office (via Windows IFilters)
  • Powered by tantivy, indexed in the background at low priority
  • A file you just saved is searchable at once: one still waiting for the index is read live at query time
  • Lean by design: the first 100,000 words of a file, binary and minified files skipped, the index folder NTFS-compressed
  • System and app churn (Windows, ProgramData, AppData) is batched once a day

🗂️ A real file explorer

  • Home, All, Gallery, your folders, This PC, Network and Linux (WSL), all inside Mosaic
  • USB sticks, shares and non-NTFS drives listed directly and watched for changes
  • Bookmarks (drag anything onto them), Recent files and Recent folders, drives with usage bars
  • Resizable sidebar; every section folds or hides
  • Drag and drop moves or copies like Explorer, with a thumbnail-sized drag image
  • Rename in place, the shell context menu, a terminal right where you are
  • In place of Explorer: folders on the desktop, drives and Win+E open in Mosaic (Tools menu, on by default)

🪟 Tabs and panes

  • Tabs at the top, bottom or left: pin, lock, color, rename, group, put to sleep
  • Split any tab into panes: side by side, stacked, grid, one big and two small
  • Panes can scroll or browse together, compare folders, copy or move to each other
  • Workspaces: save a set of tabs, reopen, export and import it
  • Reopen closed tabs; restore the last session or start on Desktop, Home or All
  • Every tab shortcut can be changed

💬 Your file windows, everywhere

  • Mosaic opens in place of Windows' Save, Open and Select folder windows, in every program
  • All programs, Custom (switch programs off one by one) or Off, in Tools › File windows…
  • Hold Shift while a window opens to get Windows' own, once
  • Laid out like Windows' own, with its warning sound when a name is taken
  • A 2 MB watcher that starts with Windows: works even when Mosaic isn't open

👁️ Views like Explorer's

  • Windows | List | Grid in the status bar
  • Windows: each folder keeps its own view, icon size and sort, shared both ways with Explorer's own folder settings
  • Folder icons by type, by contents (a preview of the files inside, as Windows draws it) or both
  • Shortcut arrows in 10 styles (Windows 11, macOS, Windows 95…), at any size
  • Tabs and the sidebar wear the shell's real icons

🖼️ Preview everything

  • Images (HEIC, AVIF, WebP, PSD, JXR…), animated GIFs, video (incl. AV1) and audio through Media Foundation
  • Text and code, folder previews, rich metadata (dimensions, duration, camera…)
  • Metadata search: camera-model:, artist:, iso-speed:, width:, height:
  • Hash search and duplicate finder: md5: sha1: sha256: crc32: dupe:

🪶 Light on memory and your SSD

  • A native Win32 + Direct2D/DirectWrite window: no browser engine inside
  • Every window is a thread of one process, as Explorer's are: the GPU driver and DLLs are paid once
  • 24-byte index records; the on-disk cache is zstd-compressed and loads in one read
  • Index changes are appended to a small log every 5 minutes, only when something changed
  • Hash, metadata and recent-file caches append or write once at exit, never per file
  • Parallel ranking with rayon, SIMD substring search with memchr

🌍 75 languages, from Afrikaans to isiZulu, including right-to-left Arabic, Persian and Urdu. 🎨 16 themes, 8 dark and 8 light, each shown as a miniature, with a cross-fade when you switch.

🧠 Search language

Space means AND. Everything below can be combined, grouped and negated.

Operator Example Meaning
a b report 2026 both words
a | b jpg | png either
!a report !draft not
( ) invoice (pdf | docx) grouping
"…" "Program Files (x86)" exact phrase, operators included
* ? IMG_????.jpg wildcards
Function Examples
ext: ext:pdf · ext:jpg;png;gif
size: size:>100mb · size:<=4kb · size:1mb..1gb
dm: dc: da: modified · created · accessed dm:today · dm:lastweek · dc:2026-01 · dm:2026-01-01..2026-06-30 · da:>=2025
file: folder: folder: node_modules
path: path:\projects\ ext:rs
attrib: attrib:h (hidden) · attrib:rs (read-only + system) · attrib:e (encrypted)
parent: child: sibling: ancestor: descendant: child:"C:\Users\you\Desktop" · descendant:D:\photos ext:raw
empty: exists: folder: empty:
distinct: unique: distinct:name · unique:size
md5: sha1: sha256: crc32: sha256:9f86d081…
dupe: dupe: ext:mp4 (files with an identical twin)
camera-model: artist: iso-speed: width: height: width:>=3840 · camera-model:x100

Date words: today yesterday thisweek lastweek thismonth lastmonth thisyear lastyear, or YYYY[-MM[-DD]] with > >= < <= = and A..B ranges. Typing a bare path such as C:\Users\you\Downloads lists what's under it. Flip the Content toggle to search inside files, or Tags to match embedded metadata.

⌨️ Keys

Search and view Tabs and panes (all can be changed)
Alt+M match case Ctrl+T new tab
Alt+W whole word Ctrl+Shift+W close tab
Alt+E regex Ctrl+Shift+T reopen closed tab
Alt+D ignore diacritics Ctrl+Tab / Ctrl+Shift+Tab next / previous tab
Alt+T track created/accessed dates Ctrl+Shift+PgUp / PgDn move tab
Alt+P preview pane Ctrl+Shift+D duplicate tab
Alt+B sidebar Ctrl+F2 rename tab
Alt+← / → back / forward Ctrl+Shift+A find a tab
Alt+↑ parent folder Ctrl+\ / Ctrl+Shift+\ split right / down
F2 rename Ctrl+W close pane
F5 refresh Ctrl+Shift+M maximize pane
Ctrl+wheel icon size Shift+F5 / Shift+F6 copy / move to the other pane
Ctrl+Backspace delete a word, in every text box Ctrl+Shift+U separate panes into tabs

🏗️ How it works

flowchart LR
    subgraph SYS["mosaic-index.exe · Windows service (SYSTEM)"]
        MFT[("NTFS MFT")] -->|one pass at first start| IDX["In-memory name index<br/>24-byte records"]
        USN[("USN journal")] -->|every change, live| IDX
        IDX -->|every 5 min, if changed: append| CACHE[("zstd cache<br/>+ change log")]
        CACHE -->|next start, then replay the journal| IDX
        USN --> CQ["Content queue<br/>user files: 60 s batches<br/>system churn: daily"]
        CQ --> TAN[("tantivy<br/>content index")]
    end
    subgraph GUI["mosaic.exe · native window"]
        UI["Direct2D UI<br/>tabs · panes · previews"] --> Q["query parser"]
        UI --> TH["mosaic-thumbs.exe<br/>shell icons and thumbnails"]
        UI --> SB[("Explorer's folder views<br/>ShellBags")]
        Q --> KV[("hash + metadata caches<br/>snapshot + append log")]
    end
    DLG["mosaic-dialogs.exe<br/>file window watcher"] -->|opens in place of<br/>Save / Open / Select folder| UI
    Q <-->|"named pipe<br/>length-framed JSON"| IDX
    Q <-->|content queries| TAN
Loading
  • No crawling. The service reads the MFT once, then follows the USN journal. After a restart it loads its cache and replays the journal from where it stopped instead of rescanning the drive. The window waits on the journal, so a file you move shows up in its new place at once.
  • Unprivileged UI. Only the small service runs elevated. The window talks to it over an ACL-protected named pipe.
  • Shell work stays out of the window. Icons, thumbnails and the context menu run in a helper process, so a misbehaving shell extension can't take Mosaic down.
  • Ranking is cheap. Records are tiny and contiguous: sorting by name, size or date is a parallel pass over flat arrays, and folders-first touches only the matches.
  • Search is never stale. The content index reloads its reader on every query, and files changed since the last batch are read and matched on the spot.
  • Folders the index doesn't hold (shares, USB sticks, WSL, This PC, Network) are listed by asking the file system directly.

📦 Install

  1. Download MosaicSetup.exe from the latest release, or build it with one command.
  2. Run it and pick an icon preset: 11 color themes, each in two styles.
  3. Accept the one admin prompt. It installs the background index service that reads the file table.
  4. Type. Name search is ready once the drive is read; content indexing then continues quietly in the background.

Mosaic then opens your folders and Save/Open windows in place of Explorer's. Both switch off in the Tools menu, and uninstalling gives them back to Windows.

🛠️ Build from source

Requires Rust (stable, MSVC toolchain) and Inno Setup 6. ImageMagick is only needed to re-render the icon presets.

git clone https://github.com/FrCynda/Mosaic.git
cd Mosaic
.\build.ps1                                    # release build + installer -> dist\MosaicSetup.exe
cargo test --release --bin mosaic-wrapper      # the test suite
.\tools\gen-presets.ps1                        # optional: re-render icons/presets from icons/presets-src/*.svg
Project layout
src/
├─ application/        search engine: query parser, index, ranking, catalog
├─ infrastructure/
│  ├─ ntfs/            MFT reader, USN journal watcher
│  ├─ service/         Windows service host, SCM, named-pipe server/client
│  ├─ cache.rs         the name index on disk: zstd snapshot + change log
│  └─ indexing.rs      volume indexing, cache persistence
├─ contentindex.rs     tantivy full-text index and its live/daily batching
├─ extract.rs          text extraction: plain text, Office XML, IFilters
├─ hashcache.rs        md5/sha1/sha256/crc32 + duplicate finder
├─ metadata.rs         shell property metadata (camera, artist, dimensions…)
├─ kvlog.rs            snapshot + append-only log persistence
├─ direct.rs           folders outside the index: shares, USB, WSL, This PC, Network
├─ recent.rs           recent files and folders
├─ shellbags.rs        Explorer's per-folder views, read and written
├─ native.rs           the Win32 / Direct2D window: list, grid, status bar, views
├─ native_tabs.rs      tabs, groups, panes, layouts, workspaces, shortcuts
├─ native_side.rs      the sidebar: places, bookmarks, recent, drives
├─ native_save.rs      Mosaic in place of Save / Open / Select folder windows
├─ native_apps.rs      which programs' file windows Mosaic answers
├─ native_preview.rs   image, video, audio and text previews
├─ native_icons.rs     folder content previews and shortcut arrows
├─ native_drop.rs      drag and drop
├─ native_themes.rs    the theme picker
├─ native_help.rs      search option help and the date picker
├─ shell.rs            shell integration: icons, context menu, shortcuts, terminals
├─ i18n.rs             loads the UI languages
└─ lang/               one text file per language
installer/             Inno Setup script
icons/                 app icons, presets and shortcut arrow styles

🙏 Credits

The NTFS engine (application/, infrastructure/) is adapted from AllTheThings (MIT). Full-text search by tantivy. Inspired by the legendary Everything by voidtools. See THIRD-PARTY-NOTICES.md for all licenses.

📄 License

MIT.

Made with Rust, for people with too many files.

About

Fast file explorer and instant file search for Windows. An Explorer replacement and Everything alternative with tabs, split panes, previews and full-text content search. Native Rust + Direct2D.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages