Bambu Bar
Monitor Bambu Lab printers from your Mac menu bar: print progress, the live camera, AMS filament, alerts and desktop widgets. Bambu Bar for macOS 26+.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Windows Internet Download Manager Software made with C#
翻訳待ち
Loading the full README.
Read the full README ↗A C# / WinForms internet download manager, built in the spirit of IDM (Internet Download Manager): multi-connection segmented downloads over HTTP, HTTPS and FTP, live per-connection progress, pause/resume/retry, and a synchronized UI across the main window and any number of open download-detail windows. A Chrome extension takes downloads over from the browser.
QuickByte.sln
Directory.Build.props Single source of truth for the version and assembly metadata
src/
QuickByte.Core/ Class library — all business logic, zero WinForms references
Enums/ DownloadStatus, ConnectionStatus, DownloadCategory,
QueueState, ScheduleDays
Models/ DownloadItem, DownloadSettings, ConnectionInfo, RemoteFileInfo,
DownloadQueue, QueueSchedule
Events/ Event-arg DTOs used for progress/status/connections/list-changed
Interfaces/ Contracts for every service (see Architecture below)
Services/ Concrete implementations
Ftp/ Minimal FTP/FTPS client: control channel, info provider,
segment connection, factory
Helpers/ ByteFormatter, RangeSplitter, SpeedCalculator, RetryPolicy,
FileNameHelper, BandwidthLimiter, ProductVersion,
SecretProtector, UrlCredentials
Streaming/ HLS playlist and DASH manifest parsers, StreamPlan (which
pieces to fetch, and which streams to refuse),
StreamResolver (the qualities a playlist offers)
Exceptions/ AuthenticationRequiredException, StreamNotSupportedException
QuickByte.UI/ WinForms application
Program.cs Composition root (wires Core services together)
AppDispatcher.cs Marshals Core events onto the UI thread
SingleInstance.cs Mutex + named pipe: one copy per user, URLs and queue
requests handed to it
StartupRegistration.cs "Start with Windows" — the HKCU Run entry for the app
QueueAgentRegistration.cs The same, for the scheduler agent below
AppVersion.cs Reads the build's version back off its own assembly
Forms/ MainForm, DownloadDetailsForm, NewDownloadForm, SettingsForm,
QueueManagerForm, UpdateForm
Controls/ ListViewProgressPainter, ConnectionSegmentsBar, IconFactory,
BrandIcon, IcoWriter (shared owner-draw progress bar, the
connection start-position/progress bar, and every toolbar/
tree/file icon — all drawn with GDI+)
Assets/ quickbyte.ico — the one real image file, generated from
BrandIcon.cs so the shell icon matches the drawn one
QuickByte.Cli/ qb.exe — the command-line tool. Parses arguments, talks to the
running app over a per-user named pipe, prints the answer.
See "Command line" below.
QuickByte.Agent/ Windowless scheduler that outlives the app: reads queues.json,
Program.cs and launches QuickByte when a queue's schedule comes due.
SchedulerLoop.cs Starts with the user's session; exits by itself when no
AgentLog.cs queue is scheduled. See "Queues and scheduling" below.
browser/
chrome-extension/ Manifest V3 extension: captures Chrome's downloads and
hands them to QuickByte over the loopback bridge
One NuGet package: System.Security.Cryptography.ProtectedData, so FTP and HTTP
passwords are not written to disk in plain text. For QuickByte.exe it is
compile-time only and deploys nothing — ProtectedData is missing from the
net8.0-windows targeting pack QuickByte.Core builds against, but ships inside
the Microsoft.WindowsDesktop.App framework the app runs on, so the SDK strips
the runtime asset.
The agent is the one exception, and it is worth knowing before wondering why the
DLL is in the install folder: being windowless it runs on plain
Microsoft.NETCore.App, which does not carry ProtectedData, so the SDK keeps
the file. System.Security.Cryptography.ProtectedData.dll therefore ships beside
QuickByte.Agent.exe and is named individually in the installer's [Files]
list. Everything else is the base class library (System.Net.Http,
System.Net.Sockets, System.Text.Json, System.Windows.Forms).
Requires the .NET 8 SDK and (to actually run the UI) Windows, since
QuickByte.UI targets net8.0-windows with WinForms.
dotnet build QuickByte.sln
dotnet run --project src/QuickByte.UI/QuickByte.UI.csproj
The solution builds three projects: the engine, the WinForms app, and
QuickByte.Agent — the scheduler that starts queues while the app is closed.
The agent has to end up beside QuickByte.exe: the app looks for it in its
own folder, and the agent finds the app the same way. Building QuickByte.UI
puts it there — its CopySchedulerAgent target copies the agent's output into
the app's, and fails the build rather than copying nothing, because a scheduler
that is silently absent is indistinguishable from one that is broken. The
installer's [Files] list then packages it from that same folder. Nothing needs
doing by hand in either place.
A copy that somehow ships without it still schedules queues for as long as its window (or tray icon) is there, and the queue window says exactly that rather than promising something it cannot do.
QuickByte.Core alone targets plain net8.0 and will build/test on any OS.
This is the beginning of the README. Read the rest at the original. Read the full README ↗