Skip to main content
The SDK lives in its own public repository, basset-org/basset-ios — Apache-2.0, developed in the open, every mechanism that runs inside your app readable before it ships.

basset-org/basset-ios

Source, README, and its own instrument-by-instrument reference.

How it reveals what it hasn’t been told to log

Instruments attach at the system boundary rather than at a call site you’d have had to add ahead of time: swizzled framework methods, KVO, delegate proxies, the unified log, Mach calls, run-loop observers. A bug doesn’t need to have been anticipated — the instrumentation attaches after the fact, when a request asks for it.

Zero transitive dependencies

Transport is Network.framework. Diagnostics come from OSLogStore. Memory and thread reads are Mach calls. The permission subjects it can read are reached through the ObjC runtime by name, so those frameworks stay unlinked in an app that doesn’t use them — a class that’s absent answers that the app doesn’t use it.

What it can’t reach

A value inside a pure-Swift internal that never crosses a system boundary is out of reach. Marking one costs a line and close to nothing at runtime — see the SDK’s own README for how.