Releases: cormacrelf/CiteprocRsKit
Releases · cormacrelf/CiteprocRsKit
v0.4.0
SwiftPM + JSON
This release changes the distribution from entirely xcframework-driven, to mostly SwiftPM.
Merged PRs:
- #6 SwiftPM support. Now you should depend directly on this repo from your Package.swift or via Xcode. See the README for how.
- #7 Supports constructing a CslReference programatically, and also passing pre-encoded JSON references directly to citeproc-rs.
Issues fixed
- #4 is no longer problem because SwiftPM downloads + compiles the Swift code from scratch when you add the package.
v0.3.0
Checksum: 997a2bf52e1da1fc93936791d93e7de4768413b709bbb95031b583935632eefc
v0.2.1
v0.2.0
Checksum: d0df70204a01cf7c1c205aa8b3ebe62ce2e4556cb348d67279b0470652f33320
Add to SPM/XCode via https://github.com/cormacrelf/CiteprocRsKit-Binary
Many changes from v0.1.0-alpha
in this release.
- Much more of the citeproc API is now covered by the FFI layer. You can now manipulate clusters and cites and render a full bibliography. (No batched updates/diffs yet.)
- Complete rewrite of Swift bindings.
- All Swift APIs prefixed with
CR
, shorter thanCiteprocRs
- API entry point is now called
CRDriver(style:localeCallback:outputFormat:)
- All APIs can
throw
, and all errors thrown areCRError
with the sole exception of Swift-side JSON serialization errors. CRError
represents an error from Rust with a human-readable error message- All panics are caught and exposed to Swift as CRError with
err.code == .caughtPanic
. Any panic "poisons" the driver, preventing its reuse (as reuse would most likely be unsafe). CRDriver.previewReference(reference:)
now gives you a bibliography entry, unlike previewCitationCluster.- You can provide a sink for rust-side logging. There is a built-in implementation for the Unified Logging system on iOS. See
CRLogger
andCRLog
. The filter string is passed to https://lib.rs/env_logger as if it were theRUST_LOG
environment variable. This is static configuration, and the more modules you allow, the more performance impact logging will have. SettingminSeverity: CRLevelFilter.warn, filter: ""
is a good basic default, it will print the warnings and errors from anywhere. For problems with output, tryfilter: "citeproc_proc::db=debug"
to dip the minimum severity for that module only. - Patterns implemented for less copying, and fewer allocations when copying, data between Swift and FFI layer
v0.1.0-alpha.1
Checksum: d0df70204a01cf7c1c205aa8b3ebe62ce2e4556cb348d67279b0470652f33320
Test Release
Test Release ignore