OpenAttributeGraph is an open source implementation of Apple's Private framework - AttributeGraph which is a high performance computing engine written in C++ and Swift.
And it powers the underlying computing and diffing of OpenSwiftUI.
| CI Status |
|---|
The project is for the following purposes:
- Add OAG support for non-Apple platform (eg. Linux, WASI and Windows)
- Diagnose and debug AG issues on Apple platform
Currently, this project is in early development.
Please refer to the documentation for more information on it.
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
For a simpler setup, you can use the prebuilt XCFramework available on the releases page.
| 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 |
The current suggested toolchain to build the project is Swift 6.1.2 / Xcode 16.4.
The project requires Swift toolchain headers for compilation. They are included as a git submodule:
git submodule update --initSee LICENSE file - MIT
See CREDITS.md for third-party licenses and acknowledgements.