This module is the main repository for Binding Tools for Swift.
This is a set of tools that can consume a compiled Apple Swift library and generates wrappers that allow it to be surfaced as a .NET library.
Check out our quickstart guide to build and run the tool locally.
The packaging of BTFS is still evolving, and we expect to provide a binding project style interface to make this process easier in the future.
In order to contribute to Binding-Tools-For-Swift, you will need Xcode 12 or Xcode 13!
Binding Tools for Swift is currently in the process of moving to Swift 5.5. At present, the code and tests appear to run correctly with either Swift 5.3 or Swift 5.5, however the new concurrency model (async/await/actor) is not yet supported. Continuous integration is being done with Xcode 12.
@ObjC
typesopen
class in Swift can be subclassed in C# and the subclass can be passed in to Swift. Overridden virtual methods in C# will be called when invoked from Swift.The docs directory contains a detailed walkthrough of how things work under the hood.
In particular the functional outline is a great place to start exploring.
Copyright (c) .NET Foundation Contributors. All rights reserved. Licensed under the MIT License.