u/SuperCoolPencil

▲ 13 r/lowlevel+1 crossposts

Thinking of writing a user-space ext4 driver for Windows from scratch. Am I insane?

I use Ubuntu for almost everything (except gaming 😞), but I need a reliable way to read (and eventually write) my ext4 partitions from Windows. There are some existing tools out there, but I'm thinking of building my own implementation from the ground up, mostly as a deep dive into filesystem internals.

I’ve been doing a lot of low-level systems programming in Go lately, so I've got a decent grasp on memory management and bit-twiddling. But filesystems are a whole different beast.

current roadmap:

  • start with a read only
  • traverse extent trees and HTrees for massive directories
  • mount it as a read-only virtual drive using WinFSP
  • implement block allocation and eventually JBD2 journaling

A few questions for anyone who has ideas :

  • I'm heavily leaning toward Go for the concurrency and easy struct unpacking, wrapping it with WinFSP via cgofuse. Am I going to regret not doing this in C or Rust when it comes to memory mapping raw blocks?
  • implementing the JBD2 protocol for safe writes is gonna be the main challenge. Is it feasible for a solo dev to build write support?
  • Any specific edge cases with ext4 legacy baggage I should watch out for on day one?

Any advice, reality checks, or recommended reading (currently digging through the kernel docs and lwext4) would be hugely appreciated.

reddit.com
u/SuperCoolPencil — 19 hours ago

[OC] Cue: A TUI to use Plex/Jellyfin with MPV!

Hey guys!

I’ve been working on a little side project called Cue, a Go-based terminal client for browsing and playing media from Plex and Jellyfin servers.

It originally started as a fork of kino, mainly because I really disliked using the Plex desktop app on Linux. I use MPV for basically everything, and I wanted all my MPV scripts and config to work properly instead of being stuck with the default Plex player experience.

Over time it turned into something a bit more opinionated, focused on smart scrobbling and what I think is a much nicer TUI experience.

A few things it does:

  • Smart scrobbling: connects to mpv over IPC and syncs playback progress back to your server every 10 seconds.
  • Auto mark watched: marks episodes/movies as watched once you cross 90% playback (configurable threshold soon).
  • Better TV browsing: seasons and episodes are shown in one collapsible tree instead of digging through multiple menus.
  • Fuzzy search: search across your entire library instantly.
  • Lightweight: local caching makes even huge libraries feel snappy.

Install: go install github.com/SuperCoolPencil/cue@latest.

Repo: github.com/SuperCoolPencil/cue

Built it mostly because I wanted a better Linux + MPV setup for Plex/Jellyfin, but figured other people here might enjoy it too 😄

This software's code is partially AI-generated

u/SuperCoolPencil — 11 days ago

[OC] Cue

Hey guys!

I’ve been working on a little side project called Cue, a Go-based terminal client for browsing and playing media from Plex and Jellyfin servers.

It originally started as a fork of kino, mainly because I really disliked using the Plex desktop app on Linux. I use MPV for basically everything, and I wanted all my MPV scripts and config to work properly instead of being stuck with the default Plex player experience.

Over time it turned into something a bit more opinionated, focused on smart scrobbling and what I think is a much nicer TUI experience.

A few things it does:

  • Smart scrobbling: connects to mpv over IPC and syncs playback progress back to your server every 10 seconds.
  • Auto mark watched: marks episodes/movies as watched once you cross 90% playback (configurable threshold soon).
  • Better TV browsing: seasons and episodes are shown in one collapsible tree instead of digging through multiple menus.
  • Fuzzy search: search across your entire library instantly.
  • Lightweight: local caching makes even huge libraries feel snappy.

Install:
go install github.com/SuperCoolPencil/cue@latest.

Repo:
github.com/SuperCoolPencil/cue

Built it mostly because I wanted a better Linux + MPV setup for Plex/Jellyfin, but figured other people here might enjoy it too :)

u/SuperCoolPencil — 11 days ago