RocketPSStore.FdroidParser
1.0.4
See the version list below for details.
dotnet add package RocketPSStore.FdroidParser --version 1.0.4
NuGet\Install-Package RocketPSStore.FdroidParser -Version 1.0.4
<PackageReference Include="RocketPSStore.FdroidParser" Version="1.0.4" />
<PackageVersion Include="RocketPSStore.FdroidParser" Version="1.0.4" />
<PackageReference Include="RocketPSStore.FdroidParser" />
paket add RocketPSStore.FdroidParser --version 1.0.4
#r "nuget: RocketPSStore.FdroidParser, 1.0.4"
#:package RocketPSStore.FdroidParser@1.0.4
#addin nuget:?package=RocketPSStore.FdroidParser&version=1.0.4
#tool nuget:?package=RocketPSStore.FdroidParser&version=1.0.4
🚀 RocketPSStore.FdroidParser
The high-performance core of the Rocket PSStore ecosystem.
RocketPSStore.FdroidParser is a modern, strongly-typed .NET library specifically engineered to handle massive F-Droid index-v2.json repositories. Designed for speed and memory efficiency, it brings "Rocket-class" repository management to the C# and .NET ecosystem.
✨ Features
- ⚡ Zero-Footprint Streaming: Processes the 30MB+ F-Droid index entry-by-entry. No more
OutOfMemoryExceptionon mobile devices. - 📦 Native GZIP Support: Automatic decompression handling using modern
HttpClientprotocols. - 🌍 Intelligent Localization: Built-in logic to prioritize your preferred language (e.g.,
en-US) with smart fallbacks. - 🔗 Async-First: Fully utilizes
IAsyncEnumerablefor non-blocking UI updates. - 🛡️ Battle-Tested: Integrated unit tests ensure data integrity across all .NET 8+ runtimes.
🚀 Getting Started
Installation
Install via the NuGet Package Manager:
dotnet add package RocketPSStore.FdroidParser
Basic Usage
Processing a repository index is as simple as a few lines of code. The parser streams data directly from the source, allowing you to stop whenever you find what you need.
using RocketPSStore.FdroidParser;
// Initialize the Rocket Client
using var client = new FdroidClient();
const string repoUrl = "[https://f-droid.org/repo/index-v2.json](https://f-droid.org/repo/index-v2.json)";
// Stream apps one by one to keep memory usage low
await foreach (var app in client.StreamAppsAsync(repoUrl))
{
Console.WriteLine($"Found App: {app.DisplayName}");
// Efficiently exit the stream early
if (app.PackageName == "org.fdroid.fdroid")
{
Console.WriteLine("Found the official F-Droid app!");
break;
}
}
🛠 Development & Contribution
We welcome contributions to the Rocket engine! Whether it's fixing a bug or suggesting a new feature, your help makes the Rocket fly higher.
Local Setup
- Clone the repository.
- Build the project:
dotnet build --configuration Release - Run the test suite:
dotnet test
Roadmap
- High-performance GZIP streaming.
- Initial NuGet Release.
- .NET MAUI Integration Samples.
- Multi-repository support (v3 index format).
📄 License
This project is licensed under the LGPL-2.1 License - see the LICENSE file for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- YamlDotNet (>= 17.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.