Description
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 SwiftWasm.
To enable using SwiftWasm with large-scale web apps, we're contributing support for SwiftWasm 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 SwiftWasm toolchain. DispatchAsync enables compiling Swift code that uses GCD, but using a Swift Concurrency backing instead of the unsupported GCD library.
- Create working proof of concept private using our own codebase to dog-food the concept.
- Create initial open source repository (in progress). This repository will be a temporary stepping stone towards hopeful integration in libDispatch or some other place in the Swift toolchain that enables
import Dispatch
in SwiftWasm builds. - Migrate DispatchAsync into SwiftWasm toolchain
DataLoader
- Private in-house wasm proof of concept
- Create PR to enable compiling to wasm: Feat: Add Swift-wasm suppport to DataLoader GraphQLSwift/DataLoader#23
- Create PR to add wasm compilation into CI: feat: Add swift wasm CI targets to DataLoader GraphQLSwift/DataLoader#26 and ci: Remove swift 5.8 and 5.9 builds from test matrix. Add Swift 6.1. GraphQLSwift/ci#3
sql-kit
- Private in-house wasm proof of concept
- Create PR to enable compiling to wasm: fix: Resolves issues breaking Swift Wasm builds for sql-kit. vapor/sql-kit#190
- Create PR to add wasm compilation into CI. See feat: Adds opt-in only wasm target to vapor CI workflows vapor/ci#54 and ci: Enables opt-in wasm CI build for sql-kit vapor/sql-kit#191
swift-distributed-tracing
- Private in-house wasm proof of concept
- Create PR to enable compiling to wasm: feat: Add swift wasm compilation support to swift-distributed-tracing apple/swift-distributed-tracing#174
- Create PR to add wasm compilation into CI: ci: Add swift wasm builds to CI to prevent future breakages to wasm builds apple/swift-distributed-tracing#175
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
- Private in-house wasm proof of concept
- Fix NIOCore build for wasip1: fix: Fix NIOCore build for wasm targets apple/swift-nio#3156
- Fix NIOCore build for wasip1 (again): fix: Fix compiler error found on latest main that breaks wasip1 (wasm) compilation apple/swift-nio#3271
- Create PR to add NIOAsyncIO (upcoming new module that is under the wraps right now pending preparation efforts)
- Create PR to add wasm compilation into CI
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
Past Contributions
- Fixed NIOCore wasm build.