Contents

openswiftuiproject/openattributegraph

OpenAttributeGraph is an open source implementation of Apple's Private framework - AttributeGraph which is a high performance computing engine written in C++ and Swift.

Usage

Via Swift Package Manager

Add OpenAttributeGraph as a dependency in your Package.swift:

dependencies: [
    .package(url: "https://github.com/OpenSwiftUIProject/OpenAttributeGraph.git", from: "0.5.0")
]

[!NOTE]

  • You may need to configure the Swift toolchain header for proper integration of OpenAttributeGraph
  • By default, OpenAttributeGraphShims will use the private AttributeGraph as its implementation on Apple platforms

Via Prebuilt XCFramework

For a simpler setup, you can use the prebuilt XCFramework available on the releases page.

Project Structure

| Target | Description | |--------|-------------| | OpenAttributeGraph | Main Swift module exposing the public API | | OpenAttributeGraphCxx | Core C++ engine implementation | | OpenAttributeGraphShims | Compatibility shims for OAG API | | Utilities | Low-level C++ data structures and smart pointers | | Platform | Cross-platform abstraction for logging and memory allocation | | SwiftBridging | Cross-platform Swift/C++ bridging compatibility header | | SwiftCorelibs | System SDK API compatibility headers for non-Darwin platforms |

Build

The current suggested toolchain to build the project is Swift 6.1.2 / Xcode 16.4.

Clone Swift headers

The project requires Swift toolchain headers for compilation. They are included as a git submodule:

git submodule update --init

Xcode (via Tuist)

This project uses Tuist to generate the Xcode project for framework builds.

  1. Install Tuist (if not already installed):

``shell # via mise mise install tuist # or via Homebrew brew install tuist ``

  1. Generate the Xcode project:

``shell tuist generate ``

  1. Build using the generated workspace:

``shell xcodebuild build -workspace OpenAttributeGraph.xcworkspace -scheme OpenAttributeGraph -destination 'generic/platform=iOS Simulator' ``

License

See LICENSE file - MIT

Credits

See CREDITS.md for third-party licenses and acknowledgements.

Package Metadata

Repository: openswiftuiproject/openattributegraph

Default branch: main

README: README.md