Releases: HaishinKit/HaishinKit.swift
2.1.2
- Fixed a bug that caused streaming errors in RTMP FMLE compatibility mode.
- Initial support for WHEP/WHIP has been added. It’s not yet production-ready, but feel free to try it out if you’re interested.
Notes
What's Changed
- Support for the WHEP (WebRTC-HTTP Egress Protocol) by @shogo4405 in #1775
- Revise exception handling in RTMPStream layer. by @shogo4405 in #1776
- Bump rubocop from 1.80.1 to 1.80.2 by @dependabot[bot] in #1778
- Add UIViewRepresentable for SwiftUI. by @shogo4405 in #1779
- Update Example macOS. by @shogo4405 in #1780
- fixed an issue that prevented playback via RTMP. by @shogo4405 in #1781
Full Changelog: 2.1.1...2.1.2
2.1.1
Notes
What's Changed
- Bump rubocop from 1.79.2 to 1.80.0 by @dependabot[bot] in #1767
- Stereo recording feature for Example iOS ver 2025 by @shogo4405 in #1770
- Bump rubocop from 1.80.0 to 1.80.1 by @dependabot[bot] in #1771
- Now conforms to Sendable RTMPStreamInfo. by @shogo4405 in #1774
Full Changelog: 2.1.0...2.1.1
2.1.0
HaishinKit has reached its 10th anniversary on August 2, 2025.
We are deeply grateful for the contributions from the OSS community and the continued support from our generous sponsors. Thank you all!
In this version, I have restructured the module configuration. The RTMP-related features that were previously in HaishinKit have been moved to RTMPHaishinKit.
Features
Session
This is an API that consolidates the connection handling of RTMP and SRT into a unified interface. It encapsulates retry logic and best practices for establishing connections
Prerequisites
import HaishinKit
import RTMPHaishinKit
import SRTHaishinKit
Task {
await SessionBuilderFactory.shared.register(RTMPSessionFactory())
await SessionBuilderFactory.shared.register(SRTSessionFactory())
}
Make session
let session = try await SessionBuilderFactory.shared.make(URL(string: "rtmp://hostname/live/live"))
.setMode(.ingest)
.build()
let session = try await SessionBuilderFactory.shared.make(URL(string: "srt://hostname:448?stream=xxxxx"))
.setMode(.playback)
.build()
Connect
Playback or ingest will be performed according to the selected mode setting.
try session.connect {
print("on disconnected")
}
Notes
What's Changed
- Bump danger from 9.5.1 to 9.5.3 by @dependabot[bot] in #1738
- Update AudioMixer test cases. by @shogo4405 in #1739
- Fix: heap-use-after-free in AudioMixerByMultiTrack by @finnvoor in #1718
- Bump rubocop from 1.77.0 to 1.78.0 by @dependabot[bot] in #1742
- Repackage RTMPHaishinKit. by @shogo4405 in #1743
- Remove deprecated method. by @shogo4405 in #1744
- fix typo BitRateStorategy -> BitRateStrategy. by @shogo4405 in #1745
- Modified to throw an error for unsupported codecs. by @shogo4405 in #1746
- Add retry RTMPConneciton. by @shogo4405 in #1741
- Bump rubocop from 1.78.0 to 1.79.0 by @dependabot[bot] in #1748
- Bump rubocop from 1.79.0 to 1.79.1 by @dependabot[bot] in #1752
- Example SwiftUI. by @shogo4405 in #1753
- Remove start capture manually option. by @shogo4405 in #1756
- The concept of frameRate has been separated into input and output. by @shogo4405 in #1757
- Rename isHardwareEncoderEnabled to isHardwareAcceleratedEnabled. by @shogo4405 in #1758
- Bump rubocop from 1.79.1 to 1.79.2 by @dependabot[bot] in #1759
- Revised the reconnection process for the Session API. by @shogo4405 in #1760
- Reviewed the error handling process of SRTConnection. by @shogo4405 in #1761
- enum BitRateMode to struct. by @shogo4405 in #1762
- Add LowLatencyRateControlEnabled option. by @shogo4405 in #1763
- Redesign of the Session API. by @shogo4405 in #1764
- Add CaptureSessionMode feature. by @shogo4405 in #1765
New Contributors
Full Changelog: 2.0.9...2.1.0
2.0.9
What's Changed
- Fix typo (audioMonoStereoSegmentCOntrol -> audioMonoStereoSegmentControl) by @H0sungKim in #1706
- Update documents. by @shogo4405 in #1715
- New Session api. by @shogo4405 in #1734
New Contributors
- @H0sungKim made their first contribution in #1706
Full Changelog: 2.0.8...2.0.9
1.9.9
What's Changed
- Feature: add new property to allow mirror the preview view by @thula-belive in #1724
New Contributors
- @thula-belive made their first contribution in #1724
Full Changelog: 1.9.8...1.9.9
2.0.8
2.0.7
Notes
What's Changed
- New SRTSocketOption api. by @shogo4405 in #1695
- Support rendezvous mode. by @shogo4405 in #1696
- Change the hosting location of libsrt.xcframework by @shogo4405 in #1701
- Support Enhancing NetConnection connect Command. by @shogo4405 in #1703
Full Changelog: 2.0.6...2.0.7
2.0.6
What's Changed
- fixed SRTConnection memory-leak. by @shogo4405 in #1693
Full Changelog: 2.0.5...2.0.6
2.0.5
SRT performance has improved.
Notes
What's Changed
- Update and correction of SRT statistical information, etc. by @shogo4405 in #1686
- Enhanced SRT listener mode functionality. by @shogo4405 in #1687
- The logging level could not be set. by @shogo4405 in #1689
- Modified to use blocking processing while the listener is waiting. by @shogo4405 in #1690
Full Changelog: 2.0.4...2.0.5
1.9.8
What's Changed
- fixed an issue where screen rendering could potentially get locked. by @shogo4405 in #1671
- fixed large PES packets could be dropped. by @shogo4405 in #1679
Full Changelog: 1.9.7...1.9.8