my friend and I are gonna speak at one of India’s biggest open-source events as students!

Back in January this year, I made a post about Surge, an open-source download manager/library written in Go. When I wrote that post, we had no stars, no releases, no users.

We mostly built it because our college internet sucked, we wanted to solve a problem we had, and we thought maybe it would look good on our resumes lol. I expected it to get like a 50-100 stars which would be awesome.

Since then we have 3400+ stars, 150+ forks, and people have actually started using it, contributing to it, reporting bugs, suggesting features, etc. I really did not expect that lmao.

It opened so many doors, and introduced us to a bunch of cool people in the open-source community in India!

IndiaFOSS, conducted by FOSS United, is one of the biggest open-source conferences in India, and past speakers include people like Zerodha CTO Kailash Nadh, ente CEO Vishnu Mohandas, and so many other great engineers. The kind of people whose talks and blog posts you read!!

So we submitted a proposal because we thought it would be interesting to talk about Surge, but we genuinely didn’t expect it to get accepted. But it did :)

Our talk is called “Bad Internet, Good Software”, and we’ll be talking about all the weird networking and performance problems we ran into while building Surge.

We’re also thinking what to do with Surge next.

Going forward we plan to extract the core surge engine and develop it as an independent library We are also thinking about what we can be built on top of surge core.

If you use Surge, have a feature request, or just have advice for us, please let us know.

If any of you are going to IndiaFOSS this year, come say hi :)

P.S. my friend and I are also looking for internships/full-time opportunities, so if you or your team is hiring, please reach out.

reddit.com
u/SuperCoolPencil — 4 days ago

my friend and I are gonna speak at one of India’s biggest open-source events as students

Back in January this year, I made a post about Surge, an open-source download manager/library written in Go. When I wrote that post, we had no stars, no releases, no users.

We mostly built it because our college internet sucked, we wanted to solve a problem we had, and we thought maybe it would look good on our resumes lol. I expected it to get like a 50-100 stars which would be awesome.

Since then we have 3400+ stars, 150+ forks, and people have actually started using it, contributing to it, reporting bugs, suggesting features, etc. I really did not expect that lmao.

It opened so many doors, and introduced us to a bunch of cool people in the open-source community in India!

IndiaFOSS, conducted by FOSS United, is one of the biggest open-source conferences in India, and past speakers include people like Zerodha CTO Kailash Nadh, ente CEO Vishnu Mohandas, and so many other great engineers. The kind of people whose talks and blog posts you read!!

So we submitted a proposal because we thought it would be interesting to talk about Surge, but we genuinely didn’t expect it to get accepted. But it did :)

Our talk is called “Bad Internet, Good Software”, and we’ll be talking about all the weird networking and performance problems we ran into while building Surge.

We’re also thinking what to do with Surge next.

Going forward we plan to extract the core surge engine and develop it as an independent library We are also thinking about what we can be built on top of surge core.

If you use Surge, have a feature request, or just have advice for us, please let us know.

If any of you are going to IndiaFOSS this year, come say hi :)

P.S. my friend and I are also looking for internships/full-time opportunities, so if you or your team is hiring, please reach out.

reddit.com
u/SuperCoolPencil — 4 days ago

my friend and I are gonna speak at one of India’s biggest open-source events as students.

TL;DR: Built Surge to fix bad college internet; it grew to 3400+ stars, and now we’re speaking at IndiaFOSS. Also looking for internship/full-time opportunities.

Back in January this year, I made a post on this subreddit about Surge, an open-source download manager/library written in Go. When I wrote that post, we had no stars, no releases, no users.

We mostly built it because our college internet sucked, we wanted to solve a problem we had, and we thought maybe it would look good on our resumes lol. I expected it to get like a 50-100 stars which would be awesome.

Since then we have 3400+ stars, 150+ forks, and people have actually started using it, contributing to it, reporting bugs, suggesting features, etc. I really did not expect that lmao.

It opened so many doors, and introduced us to a bunch of cool people in the open-source community in India!

IndiaFOSS, conducted by FOSS United, is one of the biggest open-source conferences in India, and past speakers include people like Zerodha CTO Kailash Nadh, ente CEO Vishnu Mohandas, and so many other great engineers. The kind of people whose talks and blog posts you read!!

So we submitted a proposal because we thought it would be interesting to talk about Surge, but we genuinely didn’t expect it to get accepted. But it did :)

Our talk is called “Bad Internet, Good Software”, and we’ll be talking about all the weird networking and performance problems we ran into while building Surge.

We’re also thinking what to do with Surge next.

Going forward we plan to extract the core surge engine and develop it as an independent library We are also thinking about what we can be built on top of surge core.

If you use Surge, have a feature request, or just have advice for us, please let us know.

If any of you are going to IndiaFOSS this year, come say hi :)

P.S. my friend and I are also looking for internships/full-time opportunities, so if you or your team is hiring, please reach out.

reddit.com
u/SuperCoolPencil — 4 days ago

My Keybase proof [reddit:supercoolpencil = keybase:supercoolpencil] (OuByjNJl8pDwxrj4QkzJqFGizeDny8ZHQC7YZmuStpo)

Keybase proof

I am:

Proof:

hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgozKzqBV1Ne6l8Xjycjz6axdFTikEAwvoBjKUYi79czgKp3BheWxvYWTESpcCBsQgo2PRildzR+RZkbeOGRYp69GgD+Dv9r7fcD3PIOSotWnEIHAPz6dW0Kb/o93PN5P1Rw8WFwBrVDl2HhAoQ0z0nqmmAgHCo3NpZ8RA7HqNHyu4q4tLA30w4nZdYJOFuG+ErD4TSIJnv+j00nZGKYjUJlEJ0mxDV1JyFgUTaRbSgvQa9vp5/wpKzynxBKhzaWdfdHlwZSCkaGFzaIKkdHlwZQildmFsdWXEIHvovlyfBPV6OcYTXHSmEop1UJBZogZQu6z43sqTQbgzo3RhZ80CAqd2ZXJzaW9uAQ==
reddit.com
u/SuperCoolPencil — 1 month ago

Five months ago we posted our Go download manager here. Releasing v0.9.0 today.

TL;DR Surge (a terminal download manager) has grown to 3,200+ stars and 25+ contributors in five months. Today, we're releasing v0.9.0 with new features like speed limits, browser extensions, and a TUI refactor. We're grateful for the community support and FOSS United grant that helped us get here.

Five months ago, we shared a download manager we were building in Go.

At the time, Surge was at v0.1.0. XDM was not maintained, IDM was paid, other download managers were old, bloated desktop apps. Our college internet was terrible, and we mostly started the project because we wanted to understand how downloading actually works under the hood. If it became a decent resume project, that would have been a bonus.

The response from this community was far beyond anything we expected.

Since then, Surge has grown to 3,200+ GitHub stars, 130+ forks and 25+ contributors and users from around the world and opened opportunities for us that honestly felt impossible when we started. As two 19 y/o students, that's something we're still trying to process.

We are grateful for the support from FOSS United, Greptile, and Goreleaser, which helped us push the project forward. We’ve also been recognized by the community, including features on TerminalTrove, FOSSHunter, and LinuxLinks.

Today, we're releasing v0.9.0.

Looking through the git history, a lot has changed since that first post:

  • Speed limits and automatic categories
  • Browser extensions for Chrome, Edge, and Firefox
  • A major TUI refactor with themes.
  • Built-in bug reporting and much much more

The most enjoyable part has been seeing people actually use Surge, report bugs, suggest features, contribute code, and help shape the direction of the project. Many of the features in v0.9.0 exist because someone asked for them.

We've also submitted a CFP to IndiaFOSS called "Bad Internet, Good Software", where we'll be talking about the engineering behind parallel downloading and what we've learned from maintaining an open-source project that's grown much larger than we ever expected.

Long term, we're interested in pushing Surge beyond being just a download manager. We're exploring how surge core can be used as infrastructure for package managers and other download-heavy systems.

We've loved open source long before we started Surge. No matter where Surge goes from here, we'll keep advocating for open source, contributing when we can, and encouraging more people to build in public. The opportunities, friendships, and learning we've gotten from open source over the last few months have been far beyond anything we expected.

GitHub: https://github.com/surgedm/surge

Discord: https://discord.gg/x8JY6ecmE

Thank you to everyone who starred the project, opened issues, submitted PRs, tested releases, suggested features, or just left an encouraging comment on the original post.

We genuinely appreciate it. ❤️

u/SuperCoolPencil — 2 months ago
▲ 318 r/osdev

5 days ago, I asked if I was insane for trying to write a Windows ext4 driver from scratch.

Five days ago, I posted here asking if I was crazy for wanting to write a user-space ext4 driver for Windows. You all warned me that write support (specifically JBD2) would be a nightmare.

You were right. So, I shelved write support for the time being and focused on getting a native reader working.

Meet Janus. It’s written in Go, parses the ext4 structures entirely from scratch, and mounts to Windows as a native drive letter via WinFSP.

github.com/SuperCoolPencil/janus

A quick heads up: It's still pretty experimental and not fully stable right now. As I mentioned, it's strictly read-only at the moment so I don't accidentally nuke my own drives, but I might actually attempt write support in the future once this is bulletproof.

Building this was probably the most fun I've had programming in a long time. It’s one thing to study filesystems in theory, but actually writing the code to traverse extent trees and HTrees off a physical disk is a completely different feeling.

Plus, it was surprisingly refreshing to hit a wall that AI couldn't solve for me. I couldn't just prompt my way out of this; I actually had to read the kernel docs, look at raw hex dumps, and figure out the architecture from the ground up.

u/SuperCoolPencil — 3 months ago
▲ 16 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 — 3 months 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 — 3 months 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 — 3 months ago