Skip to content

PassiveLogic Swift WebAssembly Open Source Contributions #1

@scottmarchant

Description

@scottmarchant

Who is PassiveLogic?

PassiveLogic is a company creating autonomous building control solutions to pave the way for a new generation of high-efficiency building technology.

We ❤ Swift!

What is PassiveLogic doing?

We're actively working to use our existing Swift codebase in our web apps, using Swift SDK for WebAssembly.

To enable using Swift for WebAssembly with large-scale web apps, we're contributing support for Swift WebAssembly compilation to a wide range of open source repositories. These contributions work together to enable common web app functionality, such as connecting to servers using websockets, making HTTP requests, creating SQLite databases, and much more.

Active Contributions

Following are active contributions to enable using swift for large-scale web apps. This is a working list, and will be updated over time.

DispatchAsync

A new lite drop-in replacement of GCD, implemented using SwiftConcurrency. GCD is not currently included in the Swift SDK for WebAssembly. DispatchAsync enables compiling Swift code that uses GCD, but using a Swift Concurrency backing instead of the unsupported GCD library.

DataLoader

sql-kit

swift-distributed-tracing

async-kit

  • Private in-house wasm proof of concept
  • Create PR to enable compiling to wasm
  • Create PR to add wasm compilation into CI

swift-metrics

  • Private in-house wasm proof of concept
  • Create PR to enable compiling to wasm
  • Create PR to add wasm compilation into CI

swift-nio

sqlite-kit

  • Private in-house wasm proof of concept
  • Create PR to enable compiling to wasm
  • Create PR to add wasm compilation into CI

sqlite-nio

  • Private in-house wasm proof of concept
  • Create PR to enable compiling to wasm
  • Create PR to add wasm compilation into CI

RxSwift

NOTE: RxSwift is a very difficult dependency to compile to wasm, due to extensive GCD usage. We have a proof of concept working, but may opt to elide this dependency instead.

  • Private in-house wasm proof of concept
  • Create PR to enable compiling to wasm
  • Create PR to add wasm compilation into CI

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions