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 --initXcode (via Tuist)
This project uses Tuist to generate the Xcode project for framework builds.
- Install Tuist (if not already installed):
``shell # via mise mise install tuist # or via Homebrew brew install tuist ``
- Generate the Xcode project:
``shell tuist generate ``
- 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