Releases: wbx1-Ltd/BaziCore-Swift
Release list
v1.1.0
Performance and dependency release of BaziCore — identical charts and throughput, less work on the cold and batch paths.
✨ Highlights
- Shared solar-term cache —
AstronomicalSolarTermProvider.sharedwithprewarm(gregorianYear:)/prewarm(gregorianYears:)lets batch and concurrent workloads reuse high-precision roots instead of recomputing them. - Single cold solve — concurrent cold lookups for the same term de-duplicate; one solve populates every waiter.
- Child-limit fast path — natural providers resolve the adjacent 节 boundary from the birth month, replacing the three-year solar-term scan.
- Lighter true-solar shift — clock correction uses integer day arithmetic instead of
Calendar/DateComponentsallocation. - AstroCore v3 — solar longitude and equation-of-time now route through the v3 native Julian Day APIs.
🔬 Validated
All 179 tests pass; golden fixtures and reference-provider parity are unchanged — published charts and performance numbers match 1.0.0.
📋 Requirements
Swift 6.0+ · iOS 15+ · macOS 12+ · tvOS 15+ · watchOS 8+ · visionOS 1+
📦 Install
.package(url: "https://github.com/wbx1-Ltd/BaziCore-Swift.git", from: "1.1.0")v1.0.0
The first stable release of BaziCore — a rigorous BaZi (Four Pillars) computation core in pure Swift.
✨ Highlights
- Four Pillars — year / month / day / hour with configurable boundary rules (立春, 节, 子时, true solar time).
- Traceable — every boundary decision and provider confidence travels with the chart.
- Metaphysics tables — hidden stems, ten gods, five elements, NaYin, void branches, ShenSha.
- Luck cycles — DaYun, LiuNian, LiuYue, XiaoYun, and child-limit (起运).
- Layered providers — swappable calendar and astronomy engines; the core binds to neither.
🔬 Validated
Cross-validated across 17,000+ charts spanning 1902–2099 — leap days, 时辰 boundaries, late/early 子时, and every solar-term edge — with zero discrepancies. Solar-term instants are computed to the second.
⚡ Performance
~25,000 charts/sec (≈40 µs/chart) warm · ~5 ms cold single chart · ~8 MB steady memory.
📋 Requirements
Swift 6.0+ · iOS 15+ · macOS 12+ · tvOS 15+ · watchOS 8+ · visionOS 1+
📦 Install
.package(url: "https://github.com/wbx1-Ltd/BaziCore-Swift.git", from: "1.0.0")