Releases: orchetect/swift-osc
3.0.0
SwiftOSC 3.0.0
Note
This repository has been renamed swift-osc.
Please updated your dependencies to point to the new URL: https://github.com/orchetect/swift-osc
This release marks a few major structural changes and improvements to be more modular and extensible going forward:
- The library has been renamed to SwiftOSC (package name
swift-osc) - The core target (previously OSCKitCore) has been split out into its own
swift-osc-corerepository - I/O class API has now been unified using new protocols vended by
swift-osc-core, with implementations available as interchangeable network I/O backend repositories- The existing network I/O backend that used CocoaAsyncSocket has been split out into its own
swift-osc-io-cocoaextension repository - A new network I/O backend using SwiftNIO has been built in its own
swift-osc-io-nioextension repository1 and is now the default I/O backend, which brings cross-platform support to Linux and Android
- The existing network I/O backend that used CocoaAsyncSocket has been split out into its own
Issues, Discussions, and Example Code
The main swift-osc repository will continue to host issues, discussions, and example code in one place.
Documentation
Documentation is now hosted online at SwiftPackageIndex. The main swift-osc repo offers a general getting started guide, whereas and the swift-osc-core docs covers all of the core types and I/O API. Links can be found in both repo README files.
Use Cases
To use the library:
- with the default I/O backend:
- use
swift-oscas a dependency andimport SwiftOSC
- use
- with one of the alternative network I/O backends2:
- use the respective I/O extension directly as a dependency instead
- with your own network I/O implementation:
- use
swift-osc-coreas a dependency andimport SwiftOSCCore - optionally also
import SwiftOSCIOCoreto use the I/O protocols and related free functionality provided
- use
Release Notes
For release notes summarizing all new features, fixes, improvements, and changes, see the release notes for each repository for all intermediary releases that form the SwiftOSC 3.0.0 release:
- swift-osc-core 1.1.0
- swift-osc-core 1.1.1
- swift-osc-core 1.2.0
- swift-osc-core 1.3.0
- swift-osc-io-cocoa 2.1.0
- swift-osc-io-nio 1.1.0
Footnotes
-
Thanks to @The-Wolfson for the PR ↩
-
Currently two network I/O backends are available: CocoaAsyncSocket and SwiftNIO ↩
2.2.0
New
- Added Linux support for OSCKitCore target
- Added Android support for OSCKitCore target (#63)
Fixed
- Fixed OSC time tags issue in locales with daylight savings time (#62)
Maintenance
- Refactored internal data utilities to swift-data-parsing dependency
- Removed
.swift-versionfile which was causing build failures when using the swiftly toolchain manager
2.1.2
2.1.1
2.1.0
Note
This release may introduce very minor code-breaking changes if using OSCAddressSpace. See this issue comment for details.
New
OSCAddressSpace: Custom method ID type may be used in place of the defaultUUID(#53)
Maintenance
- Added Method IDs (Custom ID Type) example project
- Updated documentation
- Added documentation build script and readme for publishing online documentation
2.0.1
2.0.0
Note
This release contains various minor API changes, as well as bug fixes and other refinements. As such, it has gained a major version number bump to version 2.
A summary of the main changes can be found below.
- OSCKitCore
OSCObjectprotocol has been removed since the only two concrete types that can possibly conform areOSCBundleorOSCMessage.- The protocol has been replaced a new
OSCPacketenum that contains two strongly-typed cases containing either anOSCBundleorOSCMessage.
- The protocol has been replaced a new
OSCPacketandOSCBundle: Both have a newmessagesproperty that returns an array ofOSCMessages contained within the packet or bundle.OSCAddressSpace: Converted class into an actorOSCAddressSpace: Added newunregister(methodID:)methodOSCEncodeErrorandOSCDecodeError: Now have more idiomatic error cases- Throwing methods that throw a strongly-typed error are now marked as such in the method signature
- OSCKit
OSCUDPServer:init: Passingnilor0forportparameter will now cause a random available port number to be used- This also fixes a bug where the
localPortproperty was not updated if a random port was assigned
- This also fixes a bug where the
OSCUDPClient:init: Passingnilor0forlocalPortparameter will now cause a random available port number to be usedOSCTCPServer:init: Passingnilor0forportparameter will now cause a random available port number to be used
1.4.1
1.4.0
1.3.0
New
- TCP client and server classes have been added:
OSCTCPClient&OSCTCPServer- supporting OSC 1.0 (PLH) and OSC 1.1 (SLIP) framing modes
- connection/disconnection notification handler
- optionally constrain communication to a specific network interface
- A new TCP Client and Server example project has been added
- The existing UDP classes now also gain an
interfaceproperty to optionally constrain communication to a specific network interface
Fixes
- Fixed bug in OSC value parser where a crash could happen in rare cases
Changes
OSCClientclass has been renamedOSCUDPClientto disambiguate from the new TCP classesOSCServerclass has been renamedOSCUDPServerto disambiguate from the new TCP classesOSCSocketclass has been renamedOSCUDPSocketto disambiguate from the new TCP classes- Some class properties have been renamed for better clarity or consistency.