CoderPadKit

0.5.12

An unofficial Swift client for the CoderPad REST API: typed pads, questions, organizations, and a no-network mock backend.
adamtheturtle/CoderPadKit

What's New

CoderPadKit 0.5.12

2026-08-07T06:14:33Z

What's Changed

Restores Linux support for Screen response handling, which regressed in 0.5.10.

ScreenClient+ResponseData.swift used URLSession.AsyncBytes and session.bytes(for:delegate:) unconditionally. Those APIs are Darwin-only, so Linux consumers of 0.5.10 and 0.5.11 failed to build with 'AsyncBytes' is not a member type of class 'FoundationNetworking.URLSession'. That code now sits behind #if canImport(FoundationNetworking), with a buffered path on Linux.

CI also gains a Linux job (swift build --target CoderPadKit on swift:6.2) so this class of regression is caught before release.

Full Changelog: 0.5.11...0.5.12

CoderPadKit

An unofficial Swift client for the CoderPad REST API, with typed models and a no-network mock backend.

Documentation | Swift Package Index | Release notes

Installation

.package(url: "https://github.com/adamtheturtle/CoderPadKit.git", from: "0.1.3")

Add CoderPadKit to your app target and CoderPadKitMock to tests or demos that should run without the network.

Multi-file questions

Create or replace a multi-file question's starter files with typed path/content values:

let request = QuestionCreate(
    title: "Service exercise",
    language: "multifile_python",
    fileContents: [
        QuestionFileContent(path: "main.py", contents: "from service import run\n"),
        QuestionFileContent(path: "service.py", contents: "def run():\n    return 'ready'\n")
    ]
)
let question = try await client.createQuestion(request)

fileContents is mutually exclusive with the legacy single-file contents property and ZIP uploads; conflicting requests fail locally before networking.

Products

  • CoderPadKit: Typed API client for pads (including editor-history replay), questions, organizations, and quota data.
  • CoderPadKitMock: In-process fake API seeded with canned data.

Requirements

  • Swift 6.2+
  • macOS 15+, iOS 18+, tvOS 18+, watchOS 11+, or visionOS 2+

License

MIT. See LICENSE.

Description

  • Swift Tools 6.2.0
View More Packages from this Author

Dependencies

Last updated: Thu Aug 20 2026 10:01:36 GMT-0900 (Hawaii-Aleutian Daylight Time)