+
Skip to content

adobe/swan

Swan

Warning: This project is not ready for use. It is currently under development and intended only for feedback and experimentation.

Swift WebGPU Bindings for Dawn and Web

A set of Swift APIs for using WebGPU across multiple platforms.

Goals

The goal is to be able to write GPU code, using Swift, that works everywhere, including (eventually) the web.

The initial implementation is a Swift binding to Google's Dawn library.

Non-Goals

Swan is not intended to be a full rendering engine. It does not provide any rendering primitives beyond what is in WebGPU spec. For example, we do not specify a 4x4 matrix implementation, although we may use one in our examples.

Quick Start

The following snippet shows how to add Swan to your Swift package:

// swift-tools-version: 6.1
import PackageDescription

let package = Package(
    name: "YourApp",
    dependencies: [
        .package(url: "https://github.com/adobe/swan", from: "0.0.1")
    ],
    targets: [
        .target(
            name: "YourApp",
            dependencies: [
                .product(name: "Logging", package: "swan")
            ]
        )
    ]
)

Usage

TODO

Alternatives

  • swift-webgpu is another binding for WebGPU that takes a different approach.

    swift-webgpu swift-wgpu (this project)
    Dawn binding generation Swift code generated from dawn.json acts as wrappers C headers from Dawn are used directly in conjunction with an apinotes file generated from dawn.json
    JavaScript binding generation N/A In progress

Contributing

Contributions are welcomed! Read the Contributing Guide for more information.

Licensing

This project is licensed under the BSD 3-Clause License. See LICENSE for more information.

About

A cross-platform Swift API for WebGPU

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •  

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载