A modern async wrapper around the Project Lighthouse API for Swift, e.g. to build games and other clients. Runs on Linux and Apple platforms (macOS, iOS, ...).
// Prepare connection let auth = Authentication(username: username, token: token) let lh = Lighthouse(authentication: auth, url: url) // Connect to the lighthouse server try await lh.connect() log.info("Connected to the lighthouse") // Handle incoming input events Task { let stream = try await lh.streamModel() for await message in stream { if case let .inputEvent(input) = message.payload { log.info("Got input \(input)") } } } // Repeatedly send colored frames to the lighthouse while true { log.info("Sending frame") try await lh.putModel(frame: Frame(fill: .random())) try await Task.sleep(for: .seconds(1)) }For more details, check out the LighthouseDemo source code.
First make sure to have a login at lighthouse.uni-kiel.de and to have your credentials defined as environment variables:
export LIGHTHOUSE_USER=[your username] export LIGHTHOUSE_TOKEN=[your api token]Running the example is now as easy as invoking
swift run LighthouseDemo