shiny crates that could help rewrite iTunes or smth

Dadoum Dadoum Fix a nasty GPUI button dc45473 @ 2026-07-09 23:45:12
.github Initial commit: mostly implement grandslam and omnisette replacement 2025-12-29 06:24:09
adi Restructure crates and implement Windows demo 2026-01-30 16:17:23
adid-proxy Refactor super-sideloader code and finish up the UI/UX 2026-07-09 18:05:35
android-coreadi Implement super-sideloader ADI backends and IPA loading 2026-07-08 09:55:10
apple-codesign-quick Implement Sign + Sideload in super-sideloader 2026-07-09 23:34:01
elf-loader Fix TLS behaviour for some ISPs. 2026-02-13 03:52:02
fairplay Refactor super-sideloader code and finish up the UI/UX 2026-07-09 18:05:35
grandslam Refactor super-sideloader code and finish up the UI/UX 2026-07-09 18:05:35
itunes Restructure crates and implement Windows demo 2026-01-30 16:17:23
library-coreadi Get some amount of Windows support 2026-01-26 16:51:18
plist-macros Initial commit: mostly implement grandslam and omnisette replacement 2025-12-29 06:24:09
purple-builder Initial commit: mostly implement grandslam and omnisette replacement 2025-12-29 06:24:09
super-sideloader Fix a nasty GPUI button 2026-07-09 23:45:12
xcode Refactor super-sideloader code and finish up the UI/UX 2026-07-09 18:05:35
.gitignore Initial commit: mostly implement grandslam and omnisette replacement 2025-12-29 06:24:09
Cargo.lock Implement Sign + Sideload in super-sideloader 2026-07-09 23:34:01
Cargo.toml Refactor super-sideloader code and finish up the UI/UX 2026-07-09 18:05:35
LICENSE-lucide.md Implement a GPUI frontend for super-sideloader with AI help 2026-07-07 17:31:00
README.MD Implement a GPUI frontend for super-sideloader with AI help 2026-07-07 17:31:00
README.MD

apple crate collection

At some point I started a sideloader rewrite in Rust in parallel of my D rewrite, but now that there are a few alternatives, I am not sure of whether I will finish it.

Anyway, for that I wrote a few shiny crates that could help rewrite iTunes or anything apple related.

Here is a breakdown of every crate here:

adi

Abstracts an ADI connection, allows direct communication with ADI code.

adid-proxy

Create an adi::ADIProxy on a Darwin system that can connect to the adid daemon.

android-coreadi

Create an adi::ADIProxy on any Unix system (TODO: add Windows support) from any libCoreADI.so distribution supporting your architecture.

library-coreadi

Create an adi::ADIProxy given a distribution of CoreADI for your system.

This includes Intel Macs (using an old iTunes' binary), Windows (with iCloud, iTunes, or any other MS Store Apple application), and Android (with Apple Music for Android's binaries, or Apple TV for Android's) [non-exhaustive list].

grandslam

A fully-featured, type-safe, well-designed Apple server API wrapper.

You can log into an Apple account via GSA APIs with any ADIProxy, fetch the tokens, while handling every error correctly, including Apple's server errors.

(currently, the Grandslam part lacks the code to do 2FA without a browser)

apple-codesign(-quick) (unfinished yet)

A port of Sideloader's barebone very fast signer in Rust.

Sideloader's signer is less hacky than zsign and is way faster than apple-codesign-rs (probably partly because it takes a few shortcuts too in addition of being multithreaded and designed with performance in mind).

elf-loader

A better minimal cross-platform elf-loader crate.

I will add feature as needed for the other packages

fairplay (unfinished yet)

Abstracting CoreFP for use on any system, a bit like adi, will be used in itunes part.

plist-macros

Allows declarative declaration of plist.

purple-builder (unfinished yet)

A reimplementation of Xcode maybe some day? (but Rust GUI situation is not great, so I postponed that D:)

super-sideloader

That Sideloader rewrite in Rust I postponed. Work-in-progress.

The icons have been taken from the Lucide icon set. See the license in [LICENSE-lucide.md].

there should be a separate xcode api crate

but I did not start to work on it :p

Okay but why have you rewritten everything?

I wasn't satisfied with what was already available :p.

Addendum

Don't hesitate to reach me out if you have any questions, in the discussion tab here or on Discord! I do my best to be reactive and useful.

Also, if you enjoy my work, please consider giving me a small tip <3