Releases: Londopy/filekind
Release list
filekind v0.5.1
filekind v0.5.1
Compile one declarative spec into the registry entries, MIME definitions,
UTI declarations, icons and install scripts that Windows, Linux and macOS
need before they will recognise a custom file extension.
What to download
| Windows, both interfaces | filekind-v0.5.1-x86_64-windows.msi — installs the desktop app and puts filekind.exe on your PATH |
| Windows, CLI only | filekind-cli-v0.5.1-x86_64-pc-windows-msvc.zip |
| Linux desktop app | .deb, .rpm or .AppImage |
| Linux CLI | filekind-cli-v0.5.1-*-linux-musl.tar.gz — statically linked, no runtime needed |
| macOS desktop app | .dmg — universal, runs on Apple silicon and Intel |
| macOS CLI | filekind-cli-v0.5.1-*-apple-darwin.tar.gz |
| From source | cargo install filekind-cli |
Verifying your download
Every file has a matching .sha256, and SHA256SUMS covers all of them.
sha256sum -c SHA256SUMS --ignore-missingThese binaries are not codesigned. Windows SmartScreen will warn on the
MSI and macOS Gatekeeper will refuse the .dmg until you clear the
quarantine attribute. That is expected, and the checksums above are how you
verify the download in the meantime. See SECURITY.md.
Fixed
- The CLI printed raw ANSI escapes in
cmd.exeinstead of colour
(←[1mspec:←[0m ...). Colour was gated onstdout().is_terminal(),
which is true in a Windows console — but conhost does not interpret escape
sequences until virtual terminal processing is enabled on the handle, which
Windows Terminal does for you and the classic console does not. Output now
goes throughanstream, which enables VT where the console supports it and
strips the codes where it does not.NO_COLORandCLICOLOR_FORCEare
honoured as before; piped output and the--jsonandpreviewpaths are
unchanged and remain byte-exact.
SHA256SUMS
ebcbfcc9c69ab1bd49ac63bba4d9b43d34e98003131ff8368339238a7bea79e5 filekind-cli-v0.5.1-aarch64-apple-darwin.tar.gz
14997434f2c9cbf84e6b05ab12cf5c2080dbf8df21006c15a46437bece68e99c filekind-cli-v0.5.1-aarch64-unknown-linux-musl.tar.gz
a6ce4d0be927a74aead2dd592955621f096bcb31d4a8e0197f18dfb25b0b9b38 filekind-cli-v0.5.1-x86_64-apple-darwin.tar.gz
af9500e754723de576ee043894d2129515b4e65c717da9ed9a6bfb911ee7091b filekind-cli-v0.5.1-x86_64-pc-windows-msvc.zip
8b8a58ae7af576bf09c9625c29899a63fc46fbedfe364b048e512809d7341daa filekind-cli-v0.5.1-x86_64-unknown-linux-musl.tar.gz
e98c96dd4f8d2a8842b1d57fde953e2f9ce6306f19bb867e1817d174a0e458dd filekind-v0.5.1-amd64.deb
2c8643188e8d00cd1705aa7f28544c489c26ba428b410871cbf02bcc0ff5e272 filekind-v0.5.1-universal.dmg
1bfb78929f5d2eac736fb7ef5ae94292bfa815dad6f0b490d0184bdc514ac850 filekind-v0.5.1-x86_64-windows-setup.exe
4653e785df9c5b56adb2e2377d68092363d2c8c9f75bd5d662cf07bab472d483 filekind-v0.5.1-x86_64-windows.msi
0d03af547bb10d82856330a31c6b5439bcabf5c67faa21746e266c32735b5a2e filekind-v0.5.1-x86_64.AppImage
4888786d97510ad4076aa6cdc508ffde0cb7d08533a44b201def4738b77f2f68 filekind-v0.5.1-x86_64.rpm
filekind v0.5.0
filekind v0.5.0
Compile one declarative spec into the registry entries, MIME definitions,
UTI declarations, icons and install scripts that Windows, Linux and macOS
need before they will recognise a custom file extension.
What to download
| Windows, both interfaces | filekind-v0.5.0-x86_64-windows.msi — installs the desktop app and puts filekind.exe on your PATH |
| Windows, CLI only | filekind-cli-v0.5.0-x86_64-pc-windows-msvc.zip |
| Linux desktop app | .deb, .rpm or .AppImage |
| Linux CLI | filekind-cli-v0.5.0-*-linux-musl.tar.gz — statically linked, no runtime needed |
| macOS desktop app | .dmg — universal, runs on Apple silicon and Intel |
| macOS CLI | filekind-cli-v0.5.0-*-apple-darwin.tar.gz |
| From source | cargo install filekind-cli |
Verifying your download
Every file has a matching .sha256, and SHA256SUMS covers all of them.
sha256sum -c SHA256SUMS --ignore-missingThese binaries are not codesigned. Windows SmartScreen will warn on the
MSI and macOS Gatekeeper will refuse the .dmg until you clear the
quarantine attribute. That is expected, and the checksums above are how you
verify the download in the meantime. See SECURITY.md.
First public release. The v0.1–v0.4 milestones from the design sheet landed
together rather than in sequence, so they are recorded here as one release
rather than backdated into versions that were never tagged.
Three limitations are worth knowing before you install anything. macOS output
is experimental — a UTI declaration only takes effect inside a real .app
bundle, and Launch Services ignores bundles that are not codesigned and
notarised, so targets.macos is off by default. Windows default-handler
assignment is not attempted, because Windows 10 and later do not permit it from
a script; filekind registers the ProgID and populates OpenWithProgids, and
the user picks the default in Settings. Release binaries are unsigned — see
SECURITY.md for how to verify them.
Added
filekind-core: parse a.filekindspec and generate every artifact an
operating system needs to recognise a custom extension. The crate performs no
I/O and no printing — every generator returnsStringorVec<u8>, which is
what makes the GUI's live preview possible.- Windows target:
register.reg,unregister.reg, an Inno Setup[Registry]
snippet and NSIS register/unregister macros. - Linux target: freedesktop
shared-mime-infoXML, a.desktopentry, the
eight-size hicolor icon tree, andinstall.sh/uninstall.shbuilt on
xdg-mimeandxdg-icon-resource. - macOS target (experimental):
UTExportedTypeDeclarationsand
CFBundleDocumentTypesfragments, an.icns, and an optional stub.app
bundle behind--stub-app. - Universal artifacts: a libmagic pattern and a generated per-platform README.
- Icon pipeline: one square PNG in; a multi-resolution
.ico, an.icns
carrying the full Retina set (ic11–ic14,ic10), and eight hicolor PNGs
out. Lanczos3 resampling, alpha preserved, non-square input padded rather
than silently cropped. - Validation with two severities: reserved executable extensions are errors,
collisions against a bundled 220-entry dataset are warnings. Diagnostics
carry a dotted field path so the GUI can underline the box that caused them. filekind-cli:init,build,check,verify,preview,iconsand
gui, with the documented exit codes (0ok,1spec invalid,2I/O
error,3generation failure).check --jsonandverify --jsonfor
scripting.filekind-gui: Tauri v2 + SvelteKit desktop app with four screens, a live
preview pane debounced at 150 ms, format-preserving round-trip editing via
toml_edit, a wizard, a recent-specs list and drag-and-drop icon input. It
linksfilekind-coredirectly and never shells out to the CLI.- Distribution packaging: Debian control files with a
build-deb.shthat
assembles from the already-generated artifacts, and an RPM spec. - Optional Kaitai Struct integration behind the
kaitaifeature. filekind
stays the association layer and Kaitai the format layer; the seam
cross-checks that the spec's magic bytes and the schema's leadingcontents
agree, and emits a build script rather than running a compiler for you. - Golden-file test suite: 53 snapshots plus structural tests asserting
determinism, unique relative output paths, and that no Windows artifact ever
touchesUserChoiceorFileExts. - TypeScript definitions generated from the Rust types with
ts-rs, so the
IPC boundary cannot drift. CI fails if the committed bindings are stale.
Security
- Handlers are declared in the spec and are never read from the file being
opened. A data file that can specify what executes when it is double-clicked
is a malware delivery vehicle, and this is an architectural constraint rather
than a policy. - No shell interpolation of user-supplied strings. Every generated command goes
through per-dialect escaping — registry, XML, Inno, NSIS, freedesktop and
POSIXsheach have their own rules, and a test asserts a hostile handler
cannot escape any of them. HKEY_CURRENT_USERand~/.local/shareby default;--systemis opt-in and
explicit.- Every register action ships with a matching unregister action. The Windows
uninstall is deliberately conservative: it removes filekind's own values and
leaves keys another application may share. - filekind never writes to the registry or the MIME database itself. It emits
scripts you can read before running them.
SHA256SUMS
d71be944fa5c753574eae72cff4c44bd8e7a1d5abbe51a267ac64646720410ec filekind-cli-v0.5.0-aarch64-apple-darwin.tar.gz
cd4392cc7b40765d27b473b42fdb863c0d81c4d3123d3f484fe2847c0ae0412a filekind-cli-v0.5.0-aarch64-unknown-linux-musl.tar.gz
55afffc2a263df8ea0312837a53e9d1c26f1afb02ef41425d34d8514cae87595 filekind-cli-v0.5.0-x86_64-apple-darwin.tar.gz
024af5a6556576e9b1dbeb92111ee34303be68340a848ba14ed0a2fcfccc6fe3 filekind-cli-v0.5.0-x86_64-pc-windows-msvc.zip
2497ccc816befe4bc90530895a44b6dd0708591b892635334de4baf1665c6888 filekind-cli-v0.5.0-x86_64-unknown-linux-musl.tar.gz
5159d906dcb7789703b4611d8cb0e81dedf727074b9afe6eb09fb31de5f985de filekind-v0.5.0-amd64.deb
f20cb36d8863d7c4231ac8e98b74f3e26a9b698f9bff61dde65c6c86084c9c54 filekind-v0.5.0-universal.dmg
2adcf4078161b7259abbe7a2f8e94c3ce8e6f58dc01373b14907ca3138ca4060 filekind-v0.5.0-x86_64-windows-setup.exe
03237601648b7d3550fd83670fc4e21241866c4ceb4a33be536fe737646dbf4e filekind-v0.5.0-x86_64-windows.msi
bc89100b53c7d2f6af61384bc0421817fae2b203b78ca34b435fa8d7c9b55fc7 filekind-v0.5.0-x86_64.AppImage
2af79f058fd633f54a81c3a3947a8debdba751a59efade218ed13d4ccc43ed16 filekind-v0.5.0-x86_64.rpm