Skip to content

OpenSwiftUIProject/OpenAttributeGraph

Repository files navigation

OpenAttributeGraph

codecov

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
Compatibility tests
macOS
iOS
Ubuntu

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.

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

License

See LICENSE file - MIT

Credits

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

About

[WIP] OpenAttributeGraph is an open source implementation of Apple's AttributeGraph

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors