Swiftpack.co - Search 16,179 Swift Packages

We do our best to crawl github for new packages, but you can also register a package manually.

Advertisement: IndiePitcher.com - Cold Email Software for Startups

The Best of Last 7 Days

grpc/grpc v1.60.0
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
⭐️ 39,516
🕓 3 hours ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Release v1.60.0
11 hours ago
This is release 1.60.0 ([gjallarhorn](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. Core --- - Implemented dualstack IPv4 and IPv6 backend support, as per [draft gRFC A61](https://github.com/grpc/proposal/pull/356). xDS support currently guarded by `GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS` env var. - Dropped Bazel 5 support. ([#34813](https://github.com/grpc/grpc/pull/34813)) - [deps] Upgrade protobuf version to v25.0. ([#34513](https://github.com/grpc/grpc/pull/34513)) - [Security - Revocation] Crl Directory Watcher Implementation. ([#34749](https://github.com/grpc/grpc/pull/34749)) - [server] Cap size of pending request queue with RealRequestMatcher. ([#34782](https://github.com/grpc/grpc/pull/34782)) - [chttp2] Fix outgoing data stats. ([#34693](https://github.com/grpc/grpc/pull/34693)) - [EventEngine] Enable Posix EventEngine Listener on all builds. ([#34748](https://github.com/grpc/grpc/pull/34748)) - [EventEngine] Enable Windows EventEngine Listener on all builds. ([#34436](https://github.com/grpc/grpc/pull/34436)) - [chttp2] Alternative protection for too many streams in the system. ([#34697](https://github.com/grpc/grpc/pull/34697)) - [Proxy] Support for setting proxy for addresses. ([#34617](https://github.com/grpc/grpc/pull/34617)) - [client idleness] client channels go idle after 30 minutes by default. ([#34653](https://github.com/grpc/grpc/pull/34653)) - [chttp2] Add an experiment to separate liveness checks from ping timeouts. ([#34647](https://github.com/grpc/grpc/pull/34647)) - [chttp2] Tarpit invalid requests. ([#34641](https://github.com/grpc/grpc/pull/34641)) - [chttp2] Enforce settings acks. ([#34640](https://github.com/grpc/grpc/pull/34640)) - [chttp2] Limit work per read cycle. ([#34639](https://github.com/grpc/grpc/pull/34639)) - [chttp2] Limit request count before receiving settings ack. ([#34638](https://github.com/grpc/grpc/pull/34638)) - [chttp2] Randomly ping on RST_STREAM. ([#34637](https://github.com/grpc/grpc/pull/34637)) C++ --- - [xds] C++ XdsServerBuilder Remove src/... header dependency from public header. ([#34790](https://github.com/grpc/grpc/pull/34790)) - [reflection] Add v1 reflection. ([#34535](https://github.com/grpc/grpc/pull/34535)) C# --- - [csharp] Grpc.Tools documentation for sharing proto files between projects and nuget packages. ([#34521](https://github.com/grpc/grpc/pull/34521)) Ruby --- - [ruby] create debug symbol packages. ([#34632](https://github.com/grpc/grpc/pull/34632))
Release v1.59.3
1 week ago
This is release gRPC Core 1.59.3 (generative). For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes. Core --- - [Security - Revocation] Crl backport to 1.59. ([#34926](https://github.com/grpc/grpc/pull/34926))
Release v1.60.0-pre1
2 weeks ago
This is a prerelease of gRPC Core 1.60.0 (gjallarhorn). For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This prerelease contains refinements, improvements, and bug fixes.
Release v1.59.2
4 weeks ago
This is release 1.59.2 ([generative](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. Core --- - [chttp2] Rollup of fixes for CVE-2023-44487. ([#34763](https://github.com/grpc/grpc/pull/34763))
Release v1.58.2
4 weeks ago
This is release 1.58.2 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34553
Release v1.57.1
4 weeks ago
This is release 1.57.1 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34557
Release v1.56.3
4 weeks ago
This is release 1.56.3 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34558
Release v1.55.4
4 weeks ago
This is release 1.55.4 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug https://github.com/grpc/grpc/pull/34559
Release v1.59.1
7 weeks ago
This is release 1.59.1 ([generative](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34552
Release v1.59.0
8 weeks ago
This is release 1.59.0 ([generative](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. Core --- - [Release] Bump core version 202309251628. ([#34476](https://github.com/grpc/grpc/pull/34476)) - [xds ssa] Remove environment variable protection for stateful affinity. ([#34435](https://github.com/grpc/grpc/pull/34435)) - [windows DNS] Simplify c-ares Windows code. ([#33965](https://github.com/grpc/grpc/pull/33965)) - [c-ares] fix spin loop bug when c-ares gives up on a socket that still has data left in its read buffer. ([#34185](https://github.com/grpc/grpc/pull/34185)) - [Deps] Adding upb as a submodule. ([#34199](https://github.com/grpc/grpc/pull/34199)) - [EventEngine] Update Cancel contract on closure deletion timeline. ([#34167](https://github.com/grpc/grpc/pull/34167)) C# --- - [csharp codegen] Handle empty base_namespace option value to fix #34113. ([#34137](https://github.com/grpc/grpc/pull/34137)) Python --- - [Python 3.12] Support Python 3.12. ([#34398](https://github.com/grpc/grpc/pull/34398)) - [Python 3.12] Deprecate distutil. ([#34186](https://github.com/grpc/grpc/pull/34186)) Ruby --- - [ruby] Fix linking errors on x86-darwin. ([#34134](https://github.com/grpc/grpc/pull/34134)) - [Ruby] replace strdup with gpr_strdup. ([#34177](https://github.com/grpc/grpc/pull/34177)) - [ruby] drop ruby 2.6 support. ([#34198](https://github.com/grpc/grpc/pull/34198))
nlohmann/json v3.11.3
JSON for Modern C++
⭐️ 37,699
🕓 9 hours ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
JSON for Modern C++ version 3.11.3
10 hours ago
Release date: 2023-11-28 SHA-256: 9bea4c8066ef4a1c206b2be5a36302f8926f7fdc6087af5d20b417d0cf103ea6 (json.hpp), a22461d13119ac5c78f205d3df1db13403e58ce1bb1794edc9313677313f4a9d (include.zip), d6c65aca6b1ed68e7a182f4757257b107ae403032760ed6ef121c9d55e81757d (json.tar.xz) ### Summary This release fixes some bugs found in the [3.11.2](https://github.com/nlohmann/json/releases/tag/v3.11.2) release. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](https://paypal.me/nlohmann). ### :sparkles: New Features - Allow [**custom base class**](https://json.nlohmann.me/api/basic_json/json_base_class_t/) as node customization point. This adds an additional template parameter which allows to set a custom base class for `nlohmann::json`. This class serves as an extension point and allows to add functionality to json node. Examples for such functionality might be metadata or additional member functions (e.g., visitors) or other application specific code. By default the parameter is set to `void` and an empty base class is used. In this case the library behaves as it already did. #3110 - Add more specific parse error message when attempting to **parse empty input**. #4037 #4180 - Add serialization-only user defined type [**macros**](https://json.nlohmann.me/features/macros/) (`NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE` and `NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE`). #3816 - Add **Bazel** build support. If you are using [Bazel](https://bazel.build/) you can simply reference this repository using `http_archive` or `git_repository` and depend on `@nlohmann_json//:json`. #3709 - Support Apple's Swift Package Manager. #4010 ### :bug: Bug Fixes - Adjust CMake files to accept `NEW` **CMake policies** up to CMake 3.14. This fixes a nasty deprecation warning that "Compatibility with CMake < 3.5 will be removed from a future version of CMake". #4076 #4112 - Fix CMake header path in install with custom `CMAKE_INSTALL_INCLUDEDIR`. #4194 - Add missing `<numeric>` header include. #3717 #3718 #3719 - Replace uses of `INT_MIN`/`INT_MAX`, etc. with `std::numeric_limits` and consistently use `std`-namespaced integer types to make library work with never GCC versions. #3722 #3723 - Add missing files (`json_fwd.hpp` and Bazel build files) to release artifact `include.zip`. #3727 #3728 - Fix 'declaration hides global declaration' warning. #3751 - Fix natvis XML. #3858 #3863 - Fix warning about moved from object. #3805 #3889 - Remove a magic number to fix a warning. #3837 #3888 - Fix debug pretty-printer by checking if match is valid before accessing group. #3919 #3920 - Fix custom allocators by defining missing `rebind` type. #3895 #3927 - Prevent memory leak when exception is thrown in `adl_serializer::to_json` #3881 #3901 - Fix Clang-Tidy warnings. #4047 - Fix init-list construction when `size_type` is not `int`. #4140 - Fix deprecation warning "identifier `_json` preceded by whitespace in a literal operator declaration". #4129 #4161 - Fix compile error with `_HAS_STATIC_RTTI=0`. #4046 - Fix char_traits deprecation warning "`char_traits<unsigned char>` is deprecated: `char_traits<T>` for `T` not equal to `char`, `wchar_t`, `char8_t`, `char16_t` or `char32_t` is non-standard". #4163 #4179 ### :hammer: Further Changes #### CI - Use official [Clang](https://github.com/silkeh/docker-clang)/[GCC](https://hub.docker.com/_/gcc) Docker containers in the CI. #3703 - Add workflow to check if the source files area amalgamated. #3693 - Fix CI build. #3724 #3862 #3978 #3985 #4025 #4083 #4160 #4196 #4215 - Use Clang 15. #3822 #3876 - Add [CIFuzz](https://google.github.io/oss-fuzz/getting-started/continuous-integration/) CI GitHub action. #3845 - Fix MinGW script and CI. #3892 #4175 - Removed lgtm and DroneCI and added [Cirrus CI](https://cirrus-ci.org). #3890 #3906 #3935 #3937 - Set minimal permissions to Github Workflows. #3971 #3972 - Refactor amalgamation workflow to avoid dangerous use of pull_request_target. #3945 #3969 #### Documentation - Add [**migration guide**](https://json.nlohmann.me/integration/migration_guide/) to replace deprecated library functions. #3702 #3887 - Add dark mode toggle to documentation #3726 - Fix typos in documentation. #3748 #3767 #3902 #3932 #3951 #4109 #4126 #4143 #4149 #4159 #4173 - Update Codacy link. #3740 - Bump documentation tool versions. #3781 #3872 #3891 #3934 - Add vcpkg port version badge. #3988 - Add to `CONTRIBUTING.md` that `make pretty` is required for test updates. #4045 - Use template get instead of get in examples. #3827 #4038 #4039 - Capture exceptions by `const&` in docs. #4099 - Fix source highlighting in user defined type macros docs. #4169 #### Tests - Use `std::ranges::equals` for range comparisons in test case. #3927 #3950 - Add more algorithm tests to `unit-algorithm.cpp`. #4044 ### :fire: Deprecated functions This release does not deprecate any function. See the [**migration guide**](https://json.nlohmann.me/integration/migration_guide/) for help adjusting your code for future versions. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - The function `iterator_wrapper` is deprecated. Please use the member function [`items()`](https://json.nlohmann.me/api/basic_json/items/) instead. - Functions `friend std::istream& operator<<(basic_json&, std::istream&)` and `friend std::ostream& operator>>(const basic_json&, std::ostream&)` are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://json.nlohmann.me/api/operator_gtgt/) and [`friend operator<<(std::ostream&, const basic_json&)`](https://json.nlohmann.me/api/operator_ltlt/) instead. - Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. - The implicit conversion from JSON Pointers to string ([`json_pointer::operator string_t`](https://json.nlohmann.me/api/json_pointer/operator_string_t)) is deprecated. Use [`json_pointer::to_string`](https://json.nlohmann.me/api/json_pointer/to_string/) instead. - Comparing JSON Pointers with strings via [`operator==`](https://json.nlohmann.me/api/json_pointer/operator_eq/) and [`operator!=`](https://json.nlohmann.me/api/json_pointer/operator_ne/) have been deprecated. To compare a [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) `p` with a string `s`, convert `s` to a `json_pointer` first and use [`json_pointer::operator==`](https://json.nlohmann.me/api/json_pointer/operator_eq/) or [`json_pointer::operator!=`](https://json.nlohmann.me/api/json_pointer/operator_ne/). #3684 All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.11.2
1 year ago
Release date: 2022-08-12 SHA-256: 665fa14b8af3837966949e8eb0052d583e2ac105d3438baba9951785512cf921 (json.hpp), e5c7a9f49a16814be27e4ed0ee900ecd0092bfb7dbfca65b5a421b774dccaaed (include.zip), 8c4b26bf4b422252e13f332bc5e388ec0ab5c3443d24399acb675e68278d341f (json.tar.xz) ### Summary This release fixes some bugs found in the [3.11.1](https://github.com/nlohmann/json/releases/tag/v3.11.1) release. Furthermore, the []((https://json.nlohmann.me/features/namespace/)) of the namespace library has been re-structured. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](https://paypal.me/nlohmann). ### :bug: Bug Fixes - Fix the [`value`](https://json.nlohmann.me/api/basic_json/value/) function which was broken for strings, size types, and `nullptr` in release 3.11.0. #3652 #3655 #3663 - Fix the `json_fwd.hpp` header to be self-contained and add it to the single-header release. #3656 #3679 #3687 - Fix regression that broke using [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) as key in associative containers. #3680 #3685 - Add missing constraint to deprecated JSON Pointer overloads of [`contains`](https://json.nlohmann.me/api/basic_json/contains/) and [`at`](https://json.nlohmann.me/api/basic_json/at/). #3658 #3681 - Fix comparison between [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) and strings with `==` and `!=`. These comparisons worked in 3.10.5, but were broken in 3.11.0 and 3.11.1. #3654 #3664 - Fix `to_json` conversion of `std::vector<bool>::reference` and `std::vector<bool>::const_reference` for STLs where these are the same as `basic_json::boolean_t&` and `basic_json::boolean_t`, respectively. #3677 #3678 ### :zap: Improvements - Restructure inline namespace and allow version component to be disabled. See [documentation](https://json.nlohmann.me/features/namespace/). #3683 #3696 #3697 #3698 - Avoid heap allocations in [BJData](https://json.nlohmann.me/features/binary_formats/bjdata/) parser. #3637 ### :hammer: Further Changes #### Documentation - Publish documentation on every push to `develop` branch. #3660 #3673 - Add missing examples for the [public API](https://json.nlohmann.me/api/basic_json/). #3672 #3686 - Fix typo in [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) documentation. #3692 #### Community - Add a badge for the [Discord chat](https://discord.gg/6mrGXKvX7y) to the README file. The goal of that additional communication channel beyond [the existing ones](https://github.com/nlohmann/json#support) is to quickly coordinate between the contributors. #3651 - Complete contributor list. #3662 #3670 #### CI - Remove the `macos-10.15` image from the CI as it is removed by GitHub Actions. #3612 #3615 #3626 - Remove hardcoded paths in Ubuntu workflow. #3626 - Only trigger AppVeyor builds if relevant files have been changed. #3626 - Fix CodeQL warning. #3626 - Harmonize naming of GitHub Actions jobs. #3661 - Add labeler action to automatically add PR labels based on the changed files. #3671 #3674 #3675 - Lint API documentation in the CI. #3672 - Add local [LGTM](http://lgtm.com) configuration and suppress warnings on third-party scripts. #3643 ### :fire: Deprecated functions - This release deprecates comparing JSON Pointers with strings via [`operator==`](https://json.nlohmann.me/api/json_pointer/operator_eq/) and [`operator!=`](https://json.nlohmann.me/api/json_pointer/operator_ne/). To compare a [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) `p` with a string `s`, convert `s` to a `json_pointer` first and use [`json_pointer::operator==`](https://json.nlohmann.me/api/json_pointer/operator_eq/) or [`json_pointer::operator!=`](https://json.nlohmann.me/api/json_pointer/operator_ne/). #3684 The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - The function `iterator_wrapper` is deprecated. Please use the member function [`items()`](https://json.nlohmann.me/api/basic_json/items/) instead. - Functions `friend std::istream& operator<<(basic_json&, std::istream&)` and `friend std::ostream& operator>>(const basic_json&, std::ostream&)` are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://json.nlohmann.me/api/operator_gtgt/) and [`friend operator<<(std::ostream&, const basic_json&)`](https://json.nlohmann.me/api/operator_ltlt/) instead. - Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. - The implicit conversion from JSON Pointers to string ([`json_pointer::operator string_t`](https://json.nlohmann.me/api/json_pointer/operator_string_t)) is deprecated. Use [`json_pointer::to_string`](https://json.nlohmann.me/api/json_pointer/to_string/) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.11.1
1 year ago
Release date: 2022-08-01 SHA-256: 9279dc616aac67efce68967f118051b50236612b90572e059783d368bd78687e (json.hpp), 9c15ca7806f863872452bfbc85fee6d1c9868117e3ea5e00a204ae961a2e1ae7 (include.zip), e6dd39f8f2da9cab11de2212acdd40b1cc1aafbe09da8c92933b911d19da3302 (json.tar.xz) ### Known issues - #3652 Regression: call to member function 'value' is ambiguous - #3654 Regression: no match for 'operator!=' comparing json_pointer and const char */string_t - #3655 Regression: .value<size_t> is compilation error All issues are fixed in the `develop` branch and will be part of the [3.11.2](https://github.com/nlohmann/json/releases/tag/v3.11.2) release. ### Summary [Version 3.11.0](https://github.com/nlohmann/json/releases/tag/v3.11.0) moved the user-defined string literals (UDL) into namespace `nlohmann::literals::json_literals` (see [documentation](https://json.nlohmann.me/api/macros/json_use_global_udls/)). Unfortunately, this namespace was not imported to the global namespace by default which broke code. This release fixes this bug. All changes are backward-compatible. See [release notes of version 3.11.0](https://github.com/nlohmann/json/releases/tag/v3.11.0) for more information on other features. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](https://paypal.me/nlohmann). ### :bug: Bug fixes - Set default value of [`JSON_USE_GLOBAL_UDLS`](https://json.nlohmann.me/api/macros/json_use_global_udls/) and the CMake options `JSON_GlobalUDLs` to `1` to import the user-defined string literals from the `nlohmann::literals::json_literals` namespace into the global namespace by default. #3644 #3645 #3646
JSON for Modern C++ version 3.11.0
1 year ago
* * * **:bug: Unfortunately, this release introduced a bug that breaks existing usages of the user-defined string literals (UDL). This is fixed in [version 3.11.1](https://github.com/nlohmann/json/releases/tag/v3.11.1).** * * * Release date: 2022-08-01 SHA-256: eb73896e9ce706ae6a62ce697dc8aca214840f70d8281779a6ea0cabe3afab3f (json.hpp), b4789050cacd110faf8b100cee82af19ad0b4d3249625f6582a60eeeb80c84a7 (include.zip), 5c8f7a4d9e9c0d565e71b6e5b0b3a12f784ffbf142e1ddc7ba86002cefb4c6ee (json.tar.xz) ### Summary Version 3.11.0 is one of the biggest releases (in terms of closed issues and merged pull requests) ever. It brings: - **String view** support for all functions working on object keys (e.g., [`at`](https://json.nlohmann.me/api/basic_json/at/) or [`operator[]`](https://json.nlohmann.me/api/basic_json/operator%5B%5D/)), avoiding unnecessary allocations. - **BJData** as the fifth supported binary format besides BSON, CBOR, MessagePack, and UBJSON. - **Better C++20 support** to make the library integrate more smoothly with newer codebases. - Better support for avoiding problems when **multiple versions** of the library are used in the same project. - Even better and more extensive **documentation** and **examples**. - **More tests** for edge cases like 32-bit support, C++20 features, using the library with ICPC, or after including `<windows.h>`. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](https://paypal.me/nlohmann). ### :sparkles: New Features - Allow to **use `std::string_view` as object keys** in [`at`](https://json.nlohmann.me/api/basic_json/at/), [`operator[]`](https://json.nlohmann.me/api/basic_json/operator%5B%5D/), [`value`](https://json.nlohmann.me/api/basic_json/value/), [`erase`](https://json.nlohmann.me/api/basic_json/erase/), [`find`](https://json.nlohmann.me/api/basic_json/find/), [`contains`](https://json.nlohmann.me/api/basic_json/contains/), and [`count`](https://json.nlohmann.me/api/basic_json/count/) to avoid unnecessary allocations. #3423, #1529, #3558, #3564 - Add support to read and write the UBJSON-derived **[Binary JData (BJData)](https://github.com/NeuroJSON/bjdata/blob/Draft_2/Binary_JData_Specification.md) format** (see [documentation](https://json.nlohmann.me/features/binary_formats/bjdata/)). #3336, #3461, #3463, #3475, #3479, #3493, #3491, #3492, #3490, #3500, #3502, #3503, #3505, #3513, #3514, #3519, #3523, #3541, #3543 ### :bug: Bug fixes - Allow creation of [`ordered_json`](https://json.nlohmann.me/api/ordered_json/) objects from initializer lists. #3342, #3343, #3370 - Fix failing tests when compiling with C++20 and add support for [`operator<=>`](https://json.nlohmann.me/api/basic_json/operator_spaceship/). #3207, #3446, #3472 - Fix comparison-related compilation problems in C++20 on GCC 12. #3138, #3379 - Make iterator satisfy `std::incrementable`. #3331, #3332 - Exclude `std::any` from implicit conversion. #3428, #3437 - Fix constraints on `from_json()` for strings. #3171, #3267, #3312, #3384, #3427, #3312, #3620 - Make iterators usable with `<ranges>` and range-v3. #3130, #3446 - Fix comparison of NaN values with `json` to behave like `float`. #3409, #3446 - Add [`operator<<(json_pointer)`](https://json.nlohmann.me/api/operator_ltlt/) to fix a regression after the 3.10.0 release. #3600, #3601 - Fix JSON Patch to not create missing parent objects. #3134, #3199, #3628 - Re-add `value_type` detection to distinguish string types (was broken in releases 3.10.4, and 3.10.5). #3204, #3333, #3604, #3602, #3629 - Fix latest build error in MSVC platform (was broken during development of 3.11.0). #3630 ### :zap: Improvements - Allow default values for [`NLOHMANN_DEFINE_TYPE_INTRUSIVE`](https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/) and [`NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE`](https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/). #2819, #3143 - Avoid clash with Arduino defines. #3338 - Improve [`meta`](https://json.nlohmann.me/api/basic_json/meta/) output for MSVC. #3417 - Check and warn if a different version of the library is already included (see [`JSON_SKIP_LIBRARY_VERSION_CHECK`](https://json.nlohmann.me/api/macros/json_skip_library_version_check/)). #3418 - Re-template [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) on string type. #3415 - Allow to create booleans from `std::vector<bool>::reference`. #3533, #3534 - Allow to use array types where iterators are pointers. #3544 - Improve performance of writing binary formats to byte vectors. #3569 - Add [`patch_inplace`](https://json.nlohmann.me/api/basic_json/patch_inplace/) function to apply patches without copying. #3581, #3596 - Use [`swap`](https://json.nlohmann.me/api/basic_json/swap/) by ADL to allow swapping with non-`std` containers and improve error messages. #3609 - Add versioned, ABI-tagged inline namespace (see [`NLOHMANN_JSON_NAMESPACE`](https://json.nlohmann.me/api/macros/nlohmann_json_namespace/)) to avoid ODR errors when linking different versions of the library. #1539, #3360, #3588, #3590 - Move UDLs out of the global namespace (see [`JSON_USE_GLOBAL_UDLS`](https://json.nlohmann.me/api/macros/json_use_global_udls/)) to avoid name clashes. #1682, #3605 #### Warnings - Fix ICPC warning 1098. #3632, #3634 - Fix a `-Wpragmas` warning in GCC <11. #3550 ### :hammer: Further Changes - Fix `_MSC_VER` version to check for `std::filesystem`. #3240 - Remove `<sstream>` dependency. #3239, #3244 - Overwork bug template to systematically request information. #3348 - Add script to [test local version](https://github.com/nlohmann/json/tree/develop/tools/serve_header) in Compiler Explorer. #3456 - Change the default value of the CMake parameter `JSON_MultipleHeader` to `ON` to always use the multi-header version unless specified otherwise. #3532 - Add option to disable default enum conversions (see [`JSON_DISABLE_ENUM_SERIALIZATION`](https://json.nlohmann.me/api/macros/json_disable_enum_serialization/)). #3536 - Add maintainer targets to create source archive `json.tar.xz` which can be used in [`FetchContent`](https://json.nlohmann.me/integration/cmake/#fetchcontent). #3289, #3255 - Fix `CITATION.cff`. #3320 - Use [The Pitchfork Layout (PFL)](https://api.csswg.org/bikeshed/?force=1&url=https://raw.githubusercontent.com/vector-of-bool/pitchfork/develop/data/spec.bs). #3462 - Update Cpplint. #3454 - More intermediate folders from Visual Studio Code are added to `.gitignore`. #3572 - Add badge for https://repology.org/project/nlohmann-json/versions. #3586 - Use [REUSE licensing framework](http://reuse.software). #3546 , #3633, #3635 - Install `.pc` and `.cmake` files to `share` directory. #3619 #### CI - Add support for Visual Studio 2022., #3295 - Adjust GitHub Actions CI wrt. `windows-latest` image. #3368 - Remove deprecated `windows-2016` image. #3416 - Speed up AppVeyor CI. #3422 - Update CI image to check with ICPC, GCC 11 and Clang 14. #3420 - Add build step for ICPC to CI. #3465 - Add more Xcode versions (13.3.1, 13.3, 13.2.1, 13.2, and 13.1) to the CI. #3485 - Fix "JSON_MultipleHeaders" option spelling in CI. #3555 - Increase timeout for Unicode tests. #3579, #3580, #3614 - Abort CI runs on newer commits on the same branch. #3610 - Fix MinGW CI failures. #3618 - Disable exceptions on ICPC (for the `disabled_exceptions` unit test). #3621 #### Unit tests - Improve unit tests. #3380, #3393, #3365, #3405, #3377, #3421, #3422 - Disable regression test on GCC <8.4. #3451 - Add tests for 32 bit. #3524, #3529, #3530, #3532 - Add error message if test suite cannot be found. #3584, #3585 - Add unit test to make sure `iterator_input_adapter` advances iterators correctly. #3548 - Add a unit test including `<windows.h>`. #3631 #### Documentation and examples - Add more examples to documentation. #3464 - Improve documentation on supported types of [`parse`](https://json.nlohmann.me/api/basic_json/parse/) and [`accept`](https://json.nlohmann.me/api/basic_json/accept/). #3245, #3246 - Add documentation on [how to parse JSON Lines](https://json.nlohmann.me/features/parsing/json_lines/) input. #3247 - Fix typos. #3249, #3265, #3426, #3439, #3481, #3499 - Document [parsing to `ordered_json`](https://json.nlohmann.me/features/object_order/#notes-on-parsing). #3325, #3326 - Use `FetchContent_MakeAvailable` in examples. #3345, #3351 - Document [requirement](https://json.nlohmann.me/api/macros/json_diagnostics/#notes) of using the same definition of `JSON_DIAGNOSTICS` in all linked objects. #3360, #3378 - Document [fuzz testing](https://github.com/nlohmann/json/blob/develop/tests/fuzzing.md). #3477, #3478 - Add documentation of [macros](https://json.nlohmann.me/api/macros/) and [runtime assertions](https://json.nlohmann.me/features/assertions/). #3444, #3431 - Fix documentation of [JSON Pointer](https://json.nlohmann.me/features/json_pointer/). #3511, #3520 - Make certain usage patterns more prominent in the README. #3557 - Document [precondition](https://json.nlohmann.me/api/basic_json/parse/#notes) for parsing from `FILE *` and add assertion. #3593 - Improve documentation. #3592 - Add documentation for [comparing `json` and `ordered_json`](https://json.nlohmann.me/api/basic_json/operator_eq/#notes). #3443, #3599 - Adjust JSON Pointer examples and add CI step for the examples. #3622 - Overwork documentation and add more examples. #3553 ### :fire: Deprecated functions The implicit conversion from JSON Pointers to string ([`json_pointer::operator string_t`](https://json.nlohmann.me/api/json_pointer/operator_string_t)) has been deprecated. Use [`json_pointer::to_string`](https://json.nlohmann.me/api/json_pointer/to_string/) instead. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - The function `iterator_wrapper` is deprecated. Please use the member function [`items()`](https://json.nlohmann.me/api/basic_json/items/) instead. - Functions `friend std::istream& operator<<(basic_json&, std::istream&)` and `friend std::ostream& operator>>(const basic_json&, std::ostream&)` are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://json.nlohmann.me/api/operator_gtgt/) and [`friend operator<<(std::ostream&, const basic_json&)`](https://json.nlohmann.me/api/operator_ltlt/) instead. - Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.5
1 year ago
Release date: 2022-01-03 SHA-256: e832d339d9e0c042e7dff807754769d778cf5d6ae9730ce21eed56de99cb5e86 (json.hpp), b94997df68856753b72f0d7a3703b7d484d4745c567f3584ef97c96c25a5798e (include.zip) ### Summary The previous version 3.10.4 introduced support to convert **`std::filesystem`** objects to JSON and vice versa. Unfortunately, we made the assumption that any compiler supporting C++17 would also have proper filesystem support. This was a mistake. This release introduces preprocessor checks (and means to override them) to make sure that the conversion support is only compiled if the compiler is detected to support it. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :bug: Bug fixes - Make sure C++17 filesystem conversions are only used if the compiler supports it. Furthermore, add defines [`JSON_HAS_FILESYSTEM` and `JSON_HAS_EXPERIMENTAL_FILESYSTEM`](https://json.nlohmann.me/features/macros/#json_has_cpp_11-json_has_cpp_14-json_has_cpp_17-json_has_cpp_20) which can be set to `0` to avoid using filesystem support altogether.`std::filesystem`. #3090 #3097 #3101 #3156 #3203 - Fix a compilation error with Nvidia CUDA Compiler (NVCC). #3013 #3234 #### Warnings - Fix a warning for shadowed variables. #3188 #3193 - Fix a warning on a pointless comparison. #3227 #2712 #2676 #1390 #755 ### :zap: Improvements - Add a parameter to the [`update`](https://json.nlohmann.me/api/basic_json/update/) function to recursively merge objects with common keys. #3006 #3069 - Extend [`std::hash`](https://json.nlohmann.me/api/basic_json/std_hash/#version-history) and [`std::swap`](https://json.nlohmann.me/api/basic_json/std_swap/) to work on any `nlohmann::basic_json` specializations rather than just `nlohmann::json`. #3121 ### :hammer: Further Changes #### Tests and CI - Update CI to use Clang 14, GCC 6, and Clang-Tidy 14. #3088 - Update cpplint. #3225 - Add build step for the Nvidia CUDA Compiler (NVCC). #3227 - Remove Travis CI. #3087 #3233 - Compile and execute the test suite with C++17. #3101 #### Documentation - The [mkdocs](https://www.mkdocs.org)-based documentation in [doc/mkdocs](https://github.com/nlohmann/json/tree/develop/doc/mkdocs) has been totally overworked. It now has a unified structure, more examples, and contains all information from the previous Doxygen-based documentation. The single source of truth is now the documentation on <https://json.nlohmann.me> and in particular the [**API Documentation**](https://json.nlohmann.me/api/basic_json/). #3071 - Removed Wandbox online examples. #3071 - Fix typos, links, and parameter names in the documentation. #3102 #3125 #3140 #3145 #3148 - Add more examples. #3071 #3100 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.4
2 years ago
Release date: 2021-10-16 SHA-256: c9ac7589260f36ea7016d4d51a6c95809803298c7caec9f55830a0214c5f9140 (json.hpp), 62c585468054e2d8e7c2759c0d990fd339d13be988577699366fe195162d16cb (include.zip) ### Summary This release fixes two bugs introduced in release 3.10.0 and fixes the conversion of `std::filesystem::path`. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :bug: Bug Fixes - Fix regression bug introduced in release 3.10.0 which broke compilation for types with an explicit default constructor with default arguments. #3077 #3079 - Fix regression bug introduced in release 3.10.0 which treated the return values of `std::find` and `std::remove` as pointers which could break compilation. #3081 #3082 - Fix converting `std::filesystem::path` to JSON. Before release 3.10.3, such a conversion would trigger a stack overflow. Release 3.10.3 then further broke compilation on Windows. #3070 #3073 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.3
2 years ago
Release date: 2021-10-08 SHA-256: bac28658a4c9410faa55960a70c1ac541e8a51bbaae57dc395e23ca5abd3159a (json.hpp), 4ae5744bc1edd216c79f619fd49915c0e490e41b05434c2d2b89e078299f04ed (include.zip) ### Summary This release fixes two more bug introduced in release 3.10.0: the **extended diagnostics triggered assertions** when used with `update()` or when inserting elements into arrays. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :bug: Bug Fixes - Fix bug in the [`update()`](https://json.nlohmann.me/api/basic_json/update/) function when used with extended diagnostics. #3007 #3008 - Fix bug when inserting into arrays when using extended diagnostics. #2926 #3032 #3037 ### :zap: Improvements #### Binary formats - Custom allocators are now supported when writing binary formats (e.g., CBOR, MessagePack) into a `std::vector`. #2982 #2989 #### User-defined type support - Allow conversion from types that do not define an explicit iterator type, but have a `begin()` and `end()` function. #3020 #### Tests and CI - Updated the [Docker image](https://github.com/nlohmann/json-ci) used in the CI. #2981 #2986 - Corrected the compiler version mentioned in the README file. #3040 #### Documentation - Add script to generate docset for Dash, Velocity, and Zeal. #2967 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.2
2 years ago
Release date: 2021-08-26 SHA-256: 059743e48b37e41579ee3a92e82e984bfa0d2a9a2b20b175d04db8089f46f047 (json.hpp), 61e605be15e88deeac4582aaf01c09d616f8302edde7adcaba9261ddc3b4ceca (include.zip) ### Summary This release is made days after the 3.10.1 release due to a bug in the release script: The [3.10.1 release](https://github.com/nlohmann/json/releases/tag/v3.10.1) at GitHub contained the correct files, but the associated tag [v3.10.1](https://github.com/nlohmann/json/tree/v3.10.1) points to the wrong commit. This release is made with a fixed build script. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :zap: Improvements - Fix the release scripts to correctly tag releases. #2973 - Fix some `-Wunused` warnings on `JSON_DIAGNOSTICS` when the library is built without CMake. #2975 #2976 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.1
2 years ago
Release date: 2021-08-24 SHA-256: 0b628af78a2f0f3e2ff41d8dfa18314dd53831ffc2720c2944192d9f53727f4d (json.hpp), 144268f7f85afb0f0fbea7c796723c849724c975f9108ffdadde9ecedaa5f0b1 (include.zip) ### Summary This release fixes a bug introduced in release 3.10.0: the **extended diagnostics triggered an assertion** when used with `ordered_json`. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :bug: Bug Fixes - Fix an assertion triggered in the extended diagnostics using `ordered_json`. #2962 #2963 - Make GDB pretty-printer robust against unset variable names. #2950 ### :zap: Improvements #### Warnings - Add a missing header to `hash.hpp`. #2948 - Fix some `-Wextra-semi-stmt` warnings. #2957 #### Tests and CI - Avoid duplicate builds in AppVeyor. #2952 - Remove an outdated test binary that is not supported any longer. #2941 #2945 - Skip tests that would fail if CMake option `JSON_Install` is set to `OFF`. #2946 #2947 - Move Travis jobs to travis-ci.com. #2938 #2959 - Set stack size for some unit tests when building with MSVC. #2955 #2961 - Add a regression test. #2960 #### Documentation - Update the Homebrew command as [nlohmann-json](https://formulae.brew.sh/formula/nlohmann-json) is now in homebrew-core. #2943 #2966 - Add example for integration via vcpkg. #2944 #2954 - Fix a typo in the documentation. #2968 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.0
2 years ago
Release date: 2021-08-17 SHA-256: 230f3a03cefd586661ebab577a347c973d97a770afb89e22c52abc3c2a19d0a7 (json.hpp), b5e3bfad07feba218a26a4f809fbb0d1e33450524bf5d7244cabc92cf8178c69 (include.zip) ### Summary JSON for Modern C++ 3.10.0 is the first release for over a year. It contains some new features and a lot of minor changes and bug fixes. Most notably, it introduces [**extended diagnostics.**](https://json.nlohmann.me/home/exceptions/#extended-diagnostic-messages) By defining [`JSON_DIAGNOSTICS`](https://json.nlohmann.me/features/macros/#json_diagnostics) before including the `json.hpp`, a [JSON Pointer](https://datatracker.ietf.org/doc/html/rfc6901) is added to [exceptions](https://json.nlohmann.me/home/exceptions/) which helps to debug issues with object access, array indices, or mismatching types. Another important change behind the curtains is a **fully overworked CI** which performs a lot of checks for every commit which should allow more frequent releases in the future. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :sparkles: New Features - Add **extended diagnostics information** by adding a [JSON Pointer](https://datatracker.ietf.org/doc/html/rfc6901) to the [exception](https://json.nlohmann.me/home/exceptions/) messages indicating the exact location of a invalid type errors or out-of-bound errors. ``` [json.exception.type_error.302] (/address/housenumber) type must be number, but is string ``` Exceptions in the library are thrown in the local context of the JSON value they are detected. This makes detailed diagnostics messages, and hence debugging, difficult. To create better diagnostics messages, each JSON value needs a pointer to its parent value such that a global context (i.e., a path from the root value to the value that lead to the exception) can be created. That global context is then provided as a JSON Pointer. As this global context comes at the price of storing one additional pointer per JSON value and runtime overhead to maintain the parent relation, extended diagnostics are disabled by default. They can, however, be enabled by defining the preprocessor symbol [`JSON_DIAGNOSTICS`](https://json.nlohmann.me/features/macros/#json_diagnostics) to 1 before including `json.hpp`. See the [`documentation`](https://json.nlohmann.me/home/exceptions/#extended-diagnostic-messages) for more information. #932 #1508 #2562 #2838 #2866 - Add a [**GDB pretty printer**](https://github.com/nlohmann/json/tree/develop/third_party/gdb_pretty_printer) to facilitate reading `basic_json` values in GDB. #1952 #2607 - Add a new value `store` to the [cbor_tag_handler_t](https://json.nlohmann.me/api/basic_json/cbor_tag_handler_t/) which allows to store the tags of CBOR values as binary subtypes. #2863 #2908 - Add support for containers with non-default-constructible types. #2574 #2576 ### :bug: Bug Fixes - Fix a regression bug that failed `ordered_json` to be used when exceptions were switched off. #2347 #2725 #2934 - Added iterator range insertion for `ordered_json`. #2490 #2512 - Change the type of binary subtypes to `std::uint64_t` to support subtypes >255. Furthermore, the return value of the `subtype()` function has been fixed to the documented value `-1` in case no subtype is given. #2863 #2908 - Fix move constructor of internal `json_ref` type which created `null` values when compiled with `-fno-elide-constructors`. #2387 #2405 - Fix the compilation of `input_adapter` for containers in edge cases. #2553 - Allow parsing from `std::byte` containers. #2413 #2546 #2550 #2602 #2869 - Fix memory leak in `to_json` in case a JSON value is reused. #2865 #2872 - Fix compilation error in case symbol `EOF` was not found. #2755 #2756 - Fix Compilation error when using `NLOHMANN_JSON_SERIALIZE_ENUM` with `ordered_json` on libc++. #2491 #2825 #### Warnings A lot of warnings have been fixed in this release. To make sure the library remains warning-free, the CI now breaks in case a warning is found in GCC (261 warning flags), Clang (flag `-Weverything` with 8 exceptions), or MSVC (flag `/W4`). - Fix `-Wimplicit-fallthrough` warnings. #2348 #2349 - Fix `-Wfloat-equal` warnings. #2909 #2911 - Add assertions to suppress C28020 warnings. #2447 - Fix shadow warnings. #1759 #2536 #2444 - Fix compiler warnings in the test suite. #2537 - Fix issues found by Visual Studio Visual Assist #2615 - Fix unused parameter warning. #2646 #2658 #2668 #2706 #2707 - Remove HEDLEY annotation from `exception::what()` to fix C28204 warning. #2673 #2680 - Suppress C4127 warning. #2592 #2875 - Fix truncation warning. #2572 #2874 - Fix useless cast warning. #1777 #2114 #2893 #2902 - Fix unknown pragma warning. #2924 #2925 - Fix `-Wswitch-enum` warnings. #2927 - Fix C4309 and C4100 warnings and treat all MSVC `/W4` warnings as error. #2930 - Suppress fewer warning flags. #2936 ### :zap: Improvements #### Tests and CI The CI chain has been completely overworked and now runs mostly on a dedicated [Docker Image](https://github.com/nlohmann/json-ci) that contains all relevant tools. - Collected all CI calls in a [CMake file](https://github.com/nlohmann/json/blob/develop/cmake/ci.cmake) which can be enabled by setting `JSON_CI`. - Linux now builds with Clang 3.5 to 12 and GCC 4.8 to 11 checking multiple C++ standards. #2540 - Windows builds with MSVC 2015 to 2019, MinGW (GCC 8), Clang 11 and 12, and Clang-CL 11 checking multiple C++ standards. - Mac builds with Xcode 10.2.1 to Xcode 12.4 checking multiple C++ standards. #1798 #2561 #2737 #2790 #2817 - Use static analysis tools Clang-Tidy, Cppcheck, Valgrind, Google Sanitizers, Clang Static Analyzer, Cpplint, and Facebook Infer. - Add internal checks for CMake flags, switched off exceptions, header amalgamation, self-contained headers, and exclusion of certain tests via CTest. - Providers: Move most Travis/AppVeyor builds to GitHub Actions. Use [Drone CI](https://cloud.drone.io/nlohmann/json) for aarch64 build. Remove FOSSA. Properly select "Release" build for Travis CI builds. #2375 #2689 - Remove `#define private public` hack from test files. Instead, macro `JSON_PRIVATE_UNLESS_TESTED` is used in the source code which defaults to `private`, but can be set to `public` to test internals. #43 #913 #1985 #2352 #### CMake - Fixed issue in CMake file that overwrote `CMAKE_CXX_COMPILER` when the test suite was compiled. #2344 #2384 - Only enable CMake options `JSON_BuildTests` and `JSON_Install` by default when the library is the main project. #2513 #2514 - Add CTest label `not_reproducible` to skip non-reproducible tests. #2324 #2560 - Formatted CMake files ##2770 - Add a CMake option `JSON_SystemInclude` to use `SYSTEM` in `target_include_directories`. #2762 - Add CMake option `JSON_FastTests` (`OFF` by default) to which slow test suite. #### Documentation - Fixed typos in the documentation. #2354 #2754 - Extended documentation for discarded values and `is_discarded()` function. #2360 #2363 - Fix Markdown of README. #2582 - Fix example in README file. #2625 #2659 - Fix example in parse exceptions documentation. #2679 - Overworked [documentation of number handling](https://json.nlohmann.me/features/types/number_handling/). #2747 - Add link to Conan Center package to README. #2771 - Added example for CPM.cmake. #2406 - Update README to use HTTPS everywhere. #2789 - Fixed consistency of `using` declarations in README. #2826 - Fix documentation of tests that required a Git checkout. #2845 - Fix code samples in GIF slideshow. #2457 - Update documentation to reference [RFC 8259](https://tools.ietf.org/html/rfc8259.html) as JSON standard. - Add section on how to get support to README file. - Replaced links to Doxygen documentation with new [API documentation](https://json.nlohmann.me/api/basic_json/). - Documented the effect of a [bug](https://github.com/microsoft/STL/issues/2114) in Microsoft's STL that makes `what()` member function of exception objects unusable in case `_HAS_EXCEPTIONS=0` is set. #2824 #### Thirdparty - Updated Hedley to version 15. #2367 - Updated Doctest to version 2.4.6. #2525 #2538 #2686 #2687 ### :hammer: Further Changes - Use C++14 constructs where available. #2533 - Fix `pkg-config.pc` generation. #2690 - Add possibility to set the C++ standard via macros `JSON_HAS_CPP_11`, `JSON_HAS_CPP_14`, `JSON_HAS_CPP_17`, and `JSON_HAS_CPP_20`. By defining any of these symbols, the internal check is overridden and the provided C++ version is unconditionally assumed. This can be helpful for compilers that only implement parts of the standard and would be detected incorrectly. #2730 #2731 #2749 - Add preprocessor symbol `JSON_NO_IO`. When defined, headers `<cstdio>`, `<ios>`, `<iosfwd>`, `<istream>`, and `<ostream>` are not included and parse functions relying on these headers are excluded. This is relevant for environment where these I/O functions are disallowed for security reasons (e.g., Intel Software Guard Extensions (SGX)). #2728 #2729 #2842 #2861 - Benchmarks are handled via `FetchContent` and require CMake version 3.11. Removed Google Benchmark copy. Fix default branch name for Google Benchmarks. #2795 #2796 - Simplify object parser for CBOR. #2879 #2598 - Cleaned up maintainer Makefiles #### Licensing - Clarified license of `is_complete_type` implementation. #2534 - License fix for `integer_sequence` and `index_sequence` implementation. #2683 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
iOS macOS watchOS tvOS
ggerganov/whisper.cpp v1.5.1
Port of OpenAI's Whisper model in C/C++
⭐️ 25,743
🕓 4 days ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
v1.5.1
4 days ago
## Overview Minor update: - With Metal, auto-fallback to CPU if device does not support Apple7 family - Add [server](https://github.com/ggerganov/whisper.cpp/tree/master/examples/server) example ## What's Changed * ISSUE-1329: replace " with ' so it doesn't try to execute code in backticks by @spullara in https://github.com/ggerganov/whisper.cpp/pull/1364 * sync : ggml (ggml-alloc + linker + gguf fixes) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1501 * Fixed with_state methods, to use the correct state by @sandrohanea in https://github.com/ggerganov/whisper.cpp/pull/1519 * #1517 Redistribute CUDA DLLs by @tamo in https://github.com/ggerganov/whisper.cpp/pull/1522 * whisper : reuse whisper_decode_with_state by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1521 * sdl : fix audio callback by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1523 * update deprecated example by @MightyStud in https://github.com/ggerganov/whisper.cpp/pull/1529 * Super Simple Whisper Server by @felrock in https://github.com/ggerganov/whisper.cpp/pull/1380 * Close file after writing in server application by @felrock in https://github.com/ggerganov/whisper.cpp/pull/1533 * bench : multi-thread memcpy by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1534 * Change temp file name for server application by @felrock in https://github.com/ggerganov/whisper.cpp/pull/1535 * Fixed Makefile for MacOS ARM 64 Go bindings by @gleicon in https://github.com/ggerganov/whisper.cpp/pull/1530 * Fixed metal build on macos-latest by @sandrohanea in https://github.com/ggerganov/whisper.cpp/pull/1544 * fix(server): typo in temperature parameter by @Okabintaro in https://github.com/ggerganov/whisper.cpp/pull/1545 * Request to add a new function to get the full language name by @bradmit in https://github.com/ggerganov/whisper.cpp/pull/1546 * server : add --print-realtime param by @ecneladis in https://github.com/ggerganov/whisper.cpp/pull/1541 * cuda : sync some minor stuff from llama.cpp by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1548 * metal : add backend function to check device family support by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1547 ## New Contributors * @spullara made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1364 * @MightyStud made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1529 * @felrock made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1380 * @gleicon made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1530 * @Okabintaro made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1545 * @bradmit made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1546 * @ecneladis made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1541 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.0...v1.5.1
v1.5.0
1 week ago
## Overview This major release includes the following changes: - Full GPU processing of the Encoder and the Decoder with CUDA and Metal is now supported - Efficient beam-search implementation via batched decoding and unified KV cache - Full quantization support of all available `ggml` quantization types - Support for grammar constrained sampling - Support for Distil Whisper models - Support for Whisper Large-v3 and more ### Full GPU support On Apple Silicon, GPU support has been available to a large extend since [15 Sep](https://github.com/ggerganov/whisper.cpp/pull/1270). However, part of the Encoder was still being executed on the CPU due to lack of MSL kernels for the convolution operations. These kernels are now available resulting in additional speed-up of the Encoder in this release: ![image](https://github.com/ggerganov/whisper.cpp/assets/1991296/f8ce8984-0cbc-41be-b578-841f595edf03) *[Encoder performance on Apple M1 Max - before and after](https://github.com/ggerganov/whisper.cpp/pull/1472#issuecomment-1806788526) (plot by @dreness)* For NVIDIA hardware, the entire computation can now be offloaded to the GPU which results in significant performance boost. For detailed performance breakdown, checkout the Benchmarks section below. The GPU processing on Apple Silicon is enabled by default, while for NVIDIA you need to build with `WHISPER_CUBLAS=1`: ```bash # Apple Silicon make # NVIDIA WHISPER_CUBLAS=1 make ``` Implementation: https://github.com/ggerganov/whisper.cpp/pull/1472 Special credits to: @FSSRepo, @slaren ### Batched decoding + efficient Beam Search At last, `whisper.cpp` now supports efficient Beam Search decoding. The missing piece was the implementation of batched decoding, which now follows closely the [unified KV cache idea from llama.cpp](https://github.com/ggerganov/llama.cpp/pull/3228). On modern NVIDIA hardware, the performance with 5 beams is the same as 1 beam thanks to the large amount of computing power available. With Metal, the speed with 5 beams is a bit slower compared to 1 beam, but it is significantly faster compared to 5x times the time for single batch which was observed with the old naive implementation. Beam Search is now enabled by default in `whisper.cpp` to match the OG implementation of OpenAI Whisper. For more performance details, checkout the Benchmarks section below. Implementation: https://github.com/ggerganov/whisper.cpp/pull/1486 ### Quantization support All `ggml` [quantization types](https://github.com/ggerganov/whisper.cpp/blob/ccc85b4ff8d250d0f25ebcac2be0e4a23401c885/ggml.h#L309-L331) are now supported. Quantization mixtures for Whisper model can be implemented. It's still unclear how the quality is affected from the quantization - this is an interesting area which can be explored in the future. ### Grammar sampling The decoder output can now be constrained with a [GBNF grammar](https://github.com/ggerganov/llama.cpp/blob/a6fc554e268634494f33b0de76f9dde650dd292f/grammars/README.md). This can be a useful technique for further improving the transcription quality in situations where the set of possible phrases are limited. https://github.com/ggerganov/whisper.cpp/assets/377495/d24716e2-5e9c-441b-8c6b-395922dccbf4 Implementation: https://github.com/ggerganov/whisper.cpp/pull/1229 Special credits to @ejones ### Distil Whisper Recently, Distil Whisper models have been released: https://huggingface.co/distil-whisper `whisper.cpp` offers support for these models, although it still lacks full implementation of the proposed chunking strategy. Performance details for distilled models are included in the Benchmarks section below. Implementation: https://github.com/ggerganov/whisper.cpp/pull/1424 ### Whisper Large-v3 Recently, OpenAI released a new version 3 of the Large model: https://github.com/openai/whisper/pull/1761 Implementation: https://github.com/ggerganov/whisper.cpp/pull/1444 ### Benchmarks Below is a breakdown of the performance of `whisper.cpp` on Apple Silicon, NVIDIA and CPU. The tables show the Encoder and Decoder speed in `ms/tok`. The `Dec.` column corresponds to batch size 1. The `Bch5` column corresponds to batch size 5. The `PP` column corresponds to batch size 128. For optimal Beam Search performance, the `Bch5` number should be 5 times smaller than `Dec.` | Hw | Config | Model | Th | Enc. | Dec. | Bch5 | PP | Commit | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | M2 Ultra | METAL | tiny | 1 | 11.14 | 1.40 | 0.49 | 0.01 | ccc85b4 | | M2 Ultra | METAL | tiny-q5_0 | 1 | 11.51 | 1.41 | 0.52 | 0.01 | ccc85b4 | | M2 Ultra | METAL | tiny-q5_1 | 1 | 12.21 | 1.41 | 0.52 | 0.01 | ccc85b4 | | M2 Ultra | METAL | base | 1 | 20.21 | 2.05 | 0.77 | 0.02 | ccc85b4 | | M2 Ultra | METAL | base-q5_0 | 1 | 19.89 | 1.96 | 0.81 | 0.02 | ccc85b4 | | M2 Ultra | METAL | base-q5_1 | 1 | 20.14 | 2.02 | 0.81 | 0.02 | ccc85b4 | | M2 Ultra | METAL | small | 1 | 51.01 | 3.97 | 1.74 | 0.05 | ccc85b4 | | M2 Ultra | METAL | small-q5_0 | 1 | 56.86 | 4.09 | 1.85 | 0.06 | ccc85b4 | | M2 Ultra | METAL | small-q5_1 | 1 | 56.81 | 4.14 | 1.85 | 0.06 | ccc85b4 | | M2 Ultra | METAL | medium | 1 | 141.21 | 8.47 | 3.98 | 0.13 | ccc85b4 | | M2 Ultra | METAL | medium-q5_0 | 1 | 160.56 | 8.27 | 4.18 | 0.14 | ccc85b4 | | M2 Ultra | METAL | medium-q5_1 | 1 | 160.52 | 8.40 | 4.15 | 0.14 | ccc85b4 | | M2 Ultra | METAL | medium-dis | 1 | 128.14 | 1.13 | 0.43 | 0.02 | ccc85b4 | | M2 Ultra | METAL | large-v2 | 1 | 248.73 | 11.96 | 6.08 | 0.22 | ccc85b4 | | M2 Ultra | METAL | large-v2-q5_0 | 1 | 286.31 | 11.99 | 6.60 | 0.26 | ccc85b4 | | M2 Ultra | METAL | large-v2-q5_1 | 1 | 284.56 | 12.42 | 6.47 | 0.26 | ccc85b4 | | M2 Ultra | METAL | large-v2-dis | 1 | 224.31 | 1.26 | 0.49 | 0.02 | ccc85b4 | | Hw | Config | Model | Th | Enc. | Dec. | Bch5 | PP | Commit | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | M2 Ultra | COREML METAL | tiny | 1 | 7.60 | 1.41 | 0.50 | 0.01 | ccc85b4 | | M2 Ultra | COREML METAL | base | 1 | 11.90 | 2.07 | 0.78 | 0.02 | ccc85b4 | | M2 Ultra | COREML METAL | small | 1 | 32.19 | 4.10 | 1.78 | 0.05 | ccc85b4 | | M2 Ultra | COREML METAL | medium | 1 | 94.43 | 8.40 | 3.89 | 0.12 | ccc85b4 | | M2 Ultra | COREML METAL | large-v2 | 1 | 179.78 | 12.12 | 6.07 | 0.22 | ccc85b4 | | Hw | Config | Model | Th | Enc. | Dec. | Bch5 | PP | Commit | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | NVIDIA V100 | BLAS CUDA | tiny | 1 | 8.84 | 1.62 | 0.33 | 0.02 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | tiny-q5_0 | 1 | 8.43 | 1.19 | 0.31 | 0.02 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | tiny-q5_1 | 1 | 8.41 | 1.19 | 0.29 | 0.02 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | base | 1 | 14.79 | 2.31 | 0.46 | 0.03 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | base-q5_0 | 1 | 15.05 | 1.66 | 0.44 | 0.03 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | base-q5_1 | 1 | 15.01 | 1.68 | 0.46 | 0.03 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | small | 1 | 40.30 | 4.37 | 0.88 | 0.05 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | small-q5_0 | 1 | 41.17 | 3.11 | 0.94 | 0.05 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | small-q5_1 | 1 | 41.12 | 3.11 | 0.82 | 0.05 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | medium | 1 | 104.93 | 10.06 | 1.77 | 0.11 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | medium-q5_0 | 1 | 107.11 | 6.13 | 2.07 | 0.12 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | medium-q5_1 | 1 | 107.91 | 6.21 | 1.77 | 0.12 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | medium-dis | 1 | 103.45 | 1.11 | 0.24 | 0.02 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | large-v2 | 1 | 171.55 | 15.76 | 2.62 | 0.17 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | large-v2-q5_0 | 1 | 176.27 | 8.61 | 3.17 | 0.19 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | large-v2-q5_1 | 1 | 176.23 | 8.67 | 2.59 | 0.19 | ccc85b4 | | Hw | Config | Model | Th | Enc. | Dec. | Bch5 | PP | Commit | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | AMD Ryzen 9 5950X | AVX2 | tiny | 8 | 197.47 | 1.22 | 0.44 | 0.25 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | tiny-q5_0 | 8 | 222.92 | 0.87 | 0.45 | 0.30 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | tiny-q5_1 | 8 | 221.25 | 0.89 | 0.45 | 0.30 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | base | 8 | 427.14 | 3.11 | 0.88 | 0.43 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | base-q5_0 | 8 | 474.96 | 1.41 | 0.72 | 0.51 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | base-q5_1 | 8 | 485.05 | 1.48 | 0.73 | 0.52 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | small | 8 | 1470.51 | 11.70 | 2.89 | 1.21 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | small-q5_0 | 8 | 1700.43 | 5.48 | 1.98 | 1.41 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | small-q5_1 | 8 | 1719.03 | 5.79 | 2.02 | 1.42 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | medium | 8 | 4417.70 | 35.13 | 8.14 | 3.24 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | medium-q5_0 | 8 | 5335.77 | 17.44 | 5.35 | 3.92 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | medium-q5_1 | 8 | 5372.26 | 18.36 | 5.42 | 3.88 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | medium-dis | 8 | 4070.25 | 4.86 | 1.16 | 0.53 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | large-v2 | 8 | 8179.09 | 66.89 | 15.45 | 5.88 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | large-v2-dis | 8 | 7490.45 | 7.06 | 1.63 | 0.70 | ccc85b4 | ### API Changes - Add `struct whisper_context_params` - Add `whisper_log_set` - Deprecate: - `whisper_init_from_file` - `whisper_init_from_buffer` - `whisper_init` - `whisper_init_from_file_no_state` - `whisper_init_from_buffer_no_state` - `whisper_init_no_state` - Add: - `whisper_init_from_file_with_params` - `whisper_init_from_buffer_with_params` - `whisper_init_with_params` - `whisper_init_from_file_with_params_no_state` - `whisper_init_from_buffer_with_params_no_state` - `whisper_init_with_params_no_state` - Diff of `struct whisper_full_params` ```diff struct whisper_full_params { enum whisper_sampling_strategy strategy; @@ -338,6 +435,7 @@ extern "C" { bool translate; bool no_context; // do not use past transcription (if any) as initial prompt for the decoder + bool no_timestamps; // do not generate timestamps bool single_segment; // force single segment output (useful for streaming) bool print_special; // print special tokens (e.g. <SOT>, <EOT>, <BEG>, etc.) bool print_progress; // print progress information @@ -355,8 +453,12 @@ extern "C" { // [EXPERIMENTAL] speed-up techniques // note: these can significantly reduce the quality of the output bool speed_up; // speed-up the audio by 2x using Phase Vocoder + bool debug_mode; // enable debug_mode provides extra info (eg. Dump log_mel) int audio_ctx; // overwrite the audio context size (0 = use default) + // [EXPERIMENTAL] [TDRZ] tinydiarize + bool tdrz_enable; // enable tinydiarize speaker turn detection + // tokens to provide to the whisper decoder as initial prompt // these are prepended to any existing text context from a previous call const char * initial_prompt; @@ -365,6 +467,7 @@ extern "C" { // for auto-detection, set to nullptr, "" or "auto" const char * language; + bool detect_language; // common decoding parameters: bool suppress_blank; // ref: https://github.com/openai/whisper/blob/f82bc59f5ea234d4b97fb2860842ed38519f7e65/whisper/decoding.py#L89 @@ -403,11 +506,24 @@ extern "C" { whisper_encoder_begin_callback encoder_begin_callback; void * encoder_begin_callback_user_data; + // called each time before ggml computation starts + whisper_abort_callback abort_callback; + void * abort_callback_user_data; + // called by each decoder to filter obtained logits whisper_logits_filter_callback logits_filter_callback; void * logits_filter_callback_user_data; + + const whisper_grammar_element ** grammar_rules; + size_t n_grammar_rules; + size_t i_start_rule; + float grammar_penalty; }; ``` There might be some instability around the API, especially with the existing language bindings. I wasn't able to test everything, so expect some issues and feel free to submit PRs with any kind of fixes that you find. ## Highlights and what's next A lot of the updates in these release are possible thanks to the many contributions in [llama.cpp](https://github.com/ggerganov/llama.cpp) - huge shoutout to all the contributors and collaborators there! Regarding future updates to `whisper.cpp`, I'm looking forward to the following things: - Add server example similar to the one in `llama.cpp` - Try to improve Metal's batched decoding performance - Look for some interesting applications of the grammar sampling functionality --- - **Latest performance of the [talk-llama](https://github.com/ggerganov/whisper.cpp/tree/master/examples/talk-llama) example** https://github.com/ggerganov/whisper.cpp/assets/1991296/d97a3788-bf2a-4756-9a43-60c6b391649e ## What's Changed * Fix quantize bug by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/842 * whisper.wasm : fix typo in readme by @BaffinLee in https://github.com/ggerganov/whisper.cpp/pull/832 * Adding --session support in examples/talk-llama by @herrera-luis in https://github.com/ggerganov/whisper.cpp/pull/845 * --detect-language mode by @CRD716 in https://github.com/ggerganov/whisper.cpp/pull/853 * talk-llama: updating session prompts load by @herrera-luis in https://github.com/ggerganov/whisper.cpp/pull/854 * CMake/Makefile : CLBlast support as in llama.cpp by @trholding in https://github.com/ggerganov/whisper.cpp/pull/862 * Instruction: Partial OpenCL GPU support via CLBlast by @trholding in https://github.com/ggerganov/whisper.cpp/pull/863 * Add cuBLAS build workflow and fix error causing lines in CMakeLists by @RelatedTitle in https://github.com/ggerganov/whisper.cpp/pull/867 * cmake : fix options disabling AVX and AVX2 flags by @blazingzephyr in https://github.com/ggerganov/whisper.cpp/pull/885 * Added large-v2. Added instructions on converting to GGML. Added --no-… by @cjheath in https://github.com/ggerganov/whisper.cpp/pull/874 * talk-llama: only copy used KV cache in get / set state by @herrera-luis in https://github.com/ggerganov/whisper.cpp/pull/890 * Fix define used for COREML_ALLOW_FALLBACK by @jcsoo in https://github.com/ggerganov/whisper.cpp/pull/893 * coreml : fix memory leak by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/899 * whisper.objc : enable Core ML in example & fix segmentation fault by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/910 * Align --no-timestamps in help to actual behavior by @Miserlou in https://github.com/ggerganov/whisper.cpp/pull/908 * readme : improve Core ML model conversion guidance by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/915 * Added support of large-v1 model into CoreML by @abCods in https://github.com/ggerganov/whisper.cpp/pull/926 * Update of Hebrew Language Code: 'iw' to 'he' by @ttv20 in https://github.com/ggerganov/whisper.cpp/pull/935 * java bindings by @nalbion in https://github.com/ggerganov/whisper.cpp/pull/931 * ci: Build with any BLAS compatible library by @akharlamov in https://github.com/ggerganov/whisper.cpp/pull/927 * [DOCS] highlight openblas support in https://github.com/ggerganov/whisper.cpp/pull/956 * Update elevenlabs example to use official python API by @DGdev91 in https://github.com/ggerganov/whisper.cpp/pull/837 * Update README.md by @genevera in https://github.com/ggerganov/whisper.cpp/pull/964 * Feature/java bindings2 by @nalbion in https://github.com/ggerganov/whisper.cpp/pull/944 * Support decode wav file has 2 channels. by @geniusnut in https://github.com/ggerganov/whisper.cpp/pull/972 * README.md: Corrected syntax for markdown link by @LarryBattle in https://github.com/ggerganov/whisper.cpp/pull/995 * Make convert-pt-to-ggml.py backwards compatible with older vocab.json tokenizer files by @akashmjn in https://github.com/ggerganov/whisper.cpp/pull/1001 * Fixing Accidental 'exit(0)' and Ensuring Proper 'return 1' in `examples/main/main.cpp` `whisper_params_parse` by @faker2048 in https://github.com/ggerganov/whisper.cpp/pull/1002 * Fix for issue #876 by @burningion in https://github.com/ggerganov/whisper.cpp/pull/1012 * Make cuBLAS compilation compatible with x86 as well as aarch64 by @byte-6174 in https://github.com/ggerganov/whisper.cpp/pull/1015 * feat(golang): improve progress reporting and callback handling by @appleboy in https://github.com/ggerganov/whisper.cpp/pull/1024 * Add support for whisper_full_lang_id() to go bindings by @jaybinks in https://github.com/ggerganov/whisper.cpp/pull/1010 * Add alternative java binding to readme by @GiviMAD in https://github.com/ggerganov/whisper.cpp/pull/1029 * diarization: add diarization support for all current output types by @colinc in https://github.com/ggerganov/whisper.cpp/pull/1031 * Fix cd statements to allow spaces in model path by @roddurd in https://github.com/ggerganov/whisper.cpp/pull/1041 * adding ggml_to_pt script by @simonMoisselin in https://github.com/ggerganov/whisper.cpp/pull/1042 * whisper: Fix build with -Werror=undef by @philn in https://github.com/ggerganov/whisper.cpp/pull/1045 * Fix talk-llama build after ggml sync (commit 5feb0dffbae5). by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1049 * Do not use _GNU_SOURCE gratuitously. by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1027 * whisper : `split_on_word` no longer trims by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1046 * Updated 'quantize-all.sh' to quantize all downloaded models by @thefinaldegree in https://github.com/ggerganov/whisper.cpp/pull/1054 * Fix talk-llama build on macOS. by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1062 * whisper : support speaker segmentation (local diarization) of mono audio via tinydiarize by @akashmjn in https://github.com/ggerganov/whisper.cpp/pull/1058 * Minor: updated readme by @mwarnaar in https://github.com/ggerganov/whisper.cpp/pull/1064 * OpenVINO support by @RyanMetcalfeInt8 in https://github.com/ggerganov/whisper.cpp/pull/1037 * go bindings: fix context.Process call in examples by @mvrilo in https://github.com/ggerganov/whisper.cpp/pull/1067 * go: Call SetDuration appropriately by @tmc in https://github.com/ggerganov/whisper.cpp/pull/1077 * Multi platforms CI by @alonfaraj in https://github.com/ggerganov/whisper.cpp/pull/1101 * Add Vim plugin by @AustinMroz in https://github.com/ggerganov/whisper.cpp/pull/1131 * chore: move progress calculation out of whisper.cpp by @geekodour in https://github.com/ggerganov/whisper.cpp/pull/1081 * expose api to let user control log output by @evmar in https://github.com/ggerganov/whisper.cpp/pull/1060 * Add a larger (30min) sample by @vadi2 in https://github.com/ggerganov/whisper.cpp/pull/1092 * Sync opencl compilation fix in ggml by @goncha in https://github.com/ggerganov/whisper.cpp/pull/1111 * README.md: Add OpenVINO support details by @RyanMetcalfeInt8 in https://github.com/ggerganov/whisper.cpp/pull/1112 * Fix MSVC compile error C3688 on non-unicode Windows by @goncha in https://github.com/ggerganov/whisper.cpp/pull/1110 * Now make tests can be called as make tests base.en by @Jerry-Master in https://github.com/ggerganov/whisper.cpp/pull/1113 * Go binding: Implement SetSplitOnWord by @xdrudis in https://github.com/ggerganov/whisper.cpp/pull/1114 * set NVCC -arch flag by cuda version by @alonfaraj in https://github.com/ggerganov/whisper.cpp/pull/1115 * Fix CLBlast build on MacOS by @iceychris in https://github.com/ggerganov/whisper.cpp/pull/1120 * Fixed the issue of OpenBLAS not being enabled on Windows. by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1128 * whisper : fix visibility warning of struct whisper_full_params by declaring in advance by @IronBlood in https://github.com/ggerganov/whisper.cpp/pull/1124 * Fix MSVC compile error C3688 by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1136 * Add tinydiarization support for streaming by @DMcConnell in https://github.com/ggerganov/whisper.cpp/pull/1137 * quantize : fix load vocab crash when len is 128 by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1160 * Fix AVX etc. under GCC/CMake by @marmistrz in https://github.com/ggerganov/whisper.cpp/pull/1174 * Fix PowerPC build failures introduced in #1174 by @marmistrz in https://github.com/ggerganov/whisper.cpp/pull/1196 * Simplify Makefile by @alonfaraj in https://github.com/ggerganov/whisper.cpp/pull/1147 * Add precalculated values of sin/cos for speeding up FFT by @AlexandrGraschenkov in https://github.com/ggerganov/whisper.cpp/pull/1142 * Make build work on Linux machines supporting AVX1 not AVX2 by @lachesis in https://github.com/ggerganov/whisper.cpp/pull/1162 * Fix OpenBLAS detection under Arch Linux by @marmistrz in https://github.com/ggerganov/whisper.cpp/pull/1173 * Minor fixes by @csukuangfj in https://github.com/ggerganov/whisper.cpp/pull/1154 * New command line option by @jbyunes in https://github.com/ggerganov/whisper.cpp/pull/1205 * whisper.android : migrate from ndk-build to CMake by @JunkFood02 in https://github.com/ggerganov/whisper.cpp/pull/1204 * Significantly improve whisper.cpp inference quality by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1148 * whisper : allow whisper_full from mel spectrogram - no audio by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1214 * ROCm Port by @ardfork in https://github.com/ggerganov/whisper.cpp/pull/1209 * Improvements to vim plugin and LSP server by @AustinMroz in https://github.com/ggerganov/whisper.cpp/pull/1144 * Detect SSSE3 by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1211 * ggml : fix compiling when SSE3 is available but not SSSE3 by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1210 * make : add support for building on DragonFlyBSD/NetBSD/OpenBSD by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1212 * make : use cpuinfo in MSYS2 to enable x86 ISA extensions on the host by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1216 * Fix CoreML memleak (fixes #1202) by @denersc in https://github.com/ggerganov/whisper.cpp/pull/1218 * whisper.android : fix cmake multiple libraries build by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1224 * Fix compilation errors incurred by -Werror by @shivamidow in https://github.com/ggerganov/whisper.cpp/pull/1227 * ci : enable java package publishing by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1228 * fix cmake commands in README #1225 by @wizardforcel in https://github.com/ggerganov/whisper.cpp/pull/1231 * ggml : sync (ggml-alloc, GPU, eps, etc.) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1220 * make : improve cpuinfo handling on x86 hosts by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1238 * ggml : sync latest llama.cpp (view_src + alloc improvements) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1247 * Posixify pagesize. by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1251 * Fix detection of AVX2 on macOS by @didzis in https://github.com/ggerganov/whisper.cpp/pull/1250 * Address ARM's big.LITTLE arch by checking cpu info. by @Digipom in https://github.com/ggerganov/whisper.cpp/pull/1254 * Bump gradle plugin and dependencies + a lint pass by @Digipom in https://github.com/ggerganov/whisper.cpp/pull/1255 * Add quantized models to download-ggml-model.sh by @nchudleigh in https://github.com/ggerganov/whisper.cpp/pull/1235 * Do not use _GNU_SOURCE gratuitously. by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1129 * ci : upgrade gradle to 2.4.2 by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1263 * sync : ggml (HBM + Metal + style) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1264 * ci : try to fix gradle action by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1265 * Fixed signing of java artifact using gradle by @nalbion in https://github.com/ggerganov/whisper.cpp/pull/1267 * Faster `beam_search` sampling by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1243 * whisper : fix bench regression by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1275 * whisper : Metal and ggml-alloc support by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1270 * bench: fix missing include by @nekr0z in https://github.com/ggerganov/whisper.cpp/pull/1303 * ruby : fix build by add missing ggml-alloc by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1305 * Update README.md. Adding missing options, remove `--speed-up`. by @Sogl in https://github.com/ggerganov/whisper.cpp/pull/1306 * Update README.md by @computerscienceiscool in https://github.com/ggerganov/whisper.cpp/pull/1290 * save the recorded audio to a file by @litongjava in https://github.com/ggerganov/whisper.cpp/pull/1310 * Python benchmark script by @nchudleigh in https://github.com/ggerganov/whisper.cpp/pull/1298 * Minor: fix example talk readme gpt-2 github url by @brunofaustino in https://github.com/ggerganov/whisper.cpp/pull/1334 * Missing speaker turn function in API by @didzis in https://github.com/ggerganov/whisper.cpp/pull/1330 * examples: Move wav_writer from stream.cpp to common.h by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1317 * Better abort callback by @mkiol in https://github.com/ggerganov/whisper.cpp/pull/1335 * Add conversion scripts from HuggingFace models to CoreML by @AlienKevin in https://github.com/ggerganov/whisper.cpp/pull/1304 * Prefer pkg-config while looking for BLAS by @marmistrz in https://github.com/ggerganov/whisper.cpp/pull/1349 * Abort build if a feature was requested and could not be configured by @marmistrz in https://github.com/ggerganov/whisper.cpp/pull/1350 * Abort callback improvements by @mkiol in https://github.com/ggerganov/whisper.cpp/pull/1345 * Dockerfile for cublas by @joecryptotoo in https://github.com/ggerganov/whisper.cpp/pull/1286 * docs: fix typo by @jorismertz in https://github.com/ggerganov/whisper.cpp/pull/1362 * Expose the audio_ctx param through the Go binding by @JohanRaffin in https://github.com/ggerganov/whisper.cpp/pull/1368 * Clarify doc about where to compile from by @ai-at-home in https://github.com/ggerganov/whisper.cpp/pull/1400 * Faster download for models on windows using BitTransfer by @WhiteOlivierus in https://github.com/ggerganov/whisper.cpp/pull/1404 * JSON: allow outputting per-token data too by @akx in https://github.com/ggerganov/whisper.cpp/pull/1358 * Move up-to-date demo to top by @asadm in https://github.com/ggerganov/whisper.cpp/pull/1417 * Use absolute paths for the converted OpenVINO model by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1356 * sync : ggml (backend v2, k-quants, CUDA opts, Metal opts, etc.) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1422 * whisper : add support for new distilled Whisper models by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1424 * whisper : add context param for disable gpu by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1293 * talk-llama : fix n_gpu_layers usage by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1441 * talk-llama : fix n_gpu_layers usage again by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1442 * Fix variable names in GitHub actions config by @iamthad in https://github.com/ggerganov/whisper.cpp/pull/1440 * Reset ctx->t_start_us when calling whisper_reset_timings() by @bjnortier in https://github.com/ggerganov/whisper.cpp/pull/1434 * Decouple Android example into a library and app module by @tobrun in https://github.com/ggerganov/whisper.cpp/pull/1445 * whisper : add support for large v3 by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1444 * Add support for Swift Package Manager by @sindresorhus in https://github.com/ggerganov/whisper.cpp/pull/1370 * Reset mel time when resetting timings by @bjnortier in https://github.com/ggerganov/whisper.cpp/pull/1452 * coreml: use the correct n_mel by @jxy in https://github.com/ggerganov/whisper.cpp/pull/1458 * models : Fix `n_mel` mismatch in convert-whisper-to-openvino.py by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1459 * Add '-l auto' to talk-llama example by @kubaracek in https://github.com/ggerganov/whisper.cpp/pull/1467 * Return with error from whisper_encode_internal and whisper_decode_int… by @bjnortier in https://github.com/ggerganov/whisper.cpp/pull/1456 * whisper : add full CUDA and Metal offloading by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1472 * examples : Enhanced compatibility with older Android versions using Java by @litongjava in https://github.com/ggerganov/whisper.cpp/pull/1382 * Add n_gpu_layers option to talk-llama example by @rlapray in https://github.com/ggerganov/whisper.cpp/pull/1475 * whisper : add grammar-based sampling by @ejones in https://github.com/ggerganov/whisper.cpp/pull/1229 * java : use tiny.en for tests by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1484 * whisper : add batched decoding by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1486 * java : fix test by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1492 * whisper : make large version explicit + fix data size units by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1493 ## New Contributors * @BaffinLee made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/832 * @herrera-luis made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/845 * @CRD716 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/853 * @trholding made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/862 * @RelatedTitle made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/867 * @blazingzephyr made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/885 * @cjheath made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/874 * @jcsoo made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/893 * @Miserlou made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/908 * @abCods made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/926 * @ttv20 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/935 * @nalbion made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/931 * @akharlamov made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/927 * @geniusnut made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/972 * @LarryBattle made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/995 * @akashmjn made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1001 * @faker2048 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1002 * @burningion made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1012 * @byte-6174 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1015 * @appleboy made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1024 * @jaybinks made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1010 * @GiviMAD made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1029 * @colinc made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1031 * @roddurd made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1041 * @simonMoisselin made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1042 * @philn made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1045 * @przemoc made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1049 * @thefinaldegree made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1054 * @mwarnaar made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1064 * @RyanMetcalfeInt8 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1037 * @mvrilo made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1067 * @tmc made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1077 * @alonfaraj made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1101 * @AustinMroz made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1131 * @geekodour made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1081 * @evmar made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1060 * @vadi2 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1092 * @goncha made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1111 * @Jerry-Master made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1113 * @xdrudis made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1114 * @iceychris made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1120 * @bobqianic made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1128 * @IronBlood made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1124 * @DMcConnell made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1137 * @marmistrz made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1174 * @AlexandrGraschenkov made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1142 * @lachesis made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1162 * @csukuangfj made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1154 * @jbyunes made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1205 * @JunkFood02 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1204 * @ardfork made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1209 * @denersc made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1218 * @shivamidow made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1227 * @wizardforcel made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1231 * @didzis made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1250 * @nchudleigh made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1235 * @nekr0z made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1303 * @Sogl made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1306 * @computerscienceiscool made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1290 * @litongjava made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1310 * @brunofaustino made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1334 * @mkiol made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1335 * @AlienKevin made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1304 * @joecryptotoo made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1286 * @jorismertz made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1362 * @JohanRaffin made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1368 * @ai-at-home made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1400 * @WhiteOlivierus made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1404 * @akx made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1358 * @asadm made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1417 * @iamthad made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1440 * @bjnortier made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1434 * @tobrun made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1445 * @sindresorhus made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1370 * @jxy made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1458 * @kubaracek made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1467 * @rlapray made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1475 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.4.0...v1.5.0
v1.4.3
3 weeks ago
This is a minor release, the main reason for which is that there hasn't been an official release for a few months now and some small things have accumulated on the `master` branch that would be nice to be upstreamed. I am planning a major `v1.5.0` release with some new and long-waited functionality soon: - Full CUDA offloading - Efficient Beam-Search implementation - Grammar support The current version `v1.4.3` should be considered in beta as I haven't worked intensively on `whisper.cpp` recently and there might be some issues that made their way in the code. I'll try to polish things in the next days and prepare a stable `v1.5.0` release. In the meantime, any feedback will be highly appreciated. ***Detailed API changes, features and new contributor recognitions will be included in the `v1.5.0` release.***
v1.4.0
30 weeks ago
## Overview This is a new major release adding **integer quantization** and **partial GPU (NVIDIA)** support ### Integer quantization This allows the `ggml` Whisper models to be converted from the default 16-bit floating point weights to 4, 5 or 8 bit integer weights. The resulting quantized models are smaller in disk size and memory usage and can be processed faster on some architectures. The transcription quality is degraded to some extend - not quantified at the moment. - Supported quantization modes: `Q4_0`, `Q4_1`, `Q4_2`, `Q5_0`, `Q5_1`, `Q8_0` - Implementation details: https://github.com/ggerganov/whisper.cpp/pull/540 - Usage instructions: [README](https://github.com/ggerganov/whisper.cpp#quantization) - All WASM examples now support `Q5` quantized models: https://whisper.ggerganov.com Here is a quantitative evaluation of the different quantization modes applied to the [LLaMA](https://github.com/facebookresearch/llama) and [RWKV](https://github.com/BlinkDL/RWKV-LM) large language models. These results can give an impression about the expected quality, size and speed for quantized Whisper models: #### LLaMA quantization (measured on M1 Pro) | Model | Measure | F16 | Q4_0 | Q4_1 | Q4_2 | Q5_0 | Q5_1 | Q8_0 | |------:|--------------|-------:|-------:|-------:|-------:|-------:|-------:|-------:| | 7B | perplexity | 5.9565 | 6.2103 | 6.1286 | 6.1698 | 6.0139 | 5.9934 | 5.9571 | | 7B | file size | 13.0G | 4.0G | 4.8G | 4.0G | 4.4G | 4.8G | 7.1G | | 7B | ms/tok @ 4th | 128 | 56 | 61 | 84 | 91 | 95 | 75 | | 7B | ms/tok @ 8th | 128 | 47 | 55 | 48 | 53 | 59 | 75 | | 7B | bits/weight | 16.0 | 5.0 | 6.0 | 5.0 | 5.5 | 6.0 | 9.0 | | 13B | perplexity | 5.2455 | 5.3748 | 5.3471 | 5.3433 | 5.2768 | 5.2582 | 5.2458 | | 13B | file size | 25.0G | 7.6G | 9.1G | 7.6G | 8.4G | 9.1G | 14G | | 13B | ms/tok @ 4th | 239 | 104 | 113 | 160 | 176 | 185 | 141 | | 13B | ms/tok @ 8th | 240 | 85 | 99 | 97 | 108 | 117 | 147 | | 13B | bits/weight | 16.0 | 5.0 | 6.0 | 5.0 | 5.5 | 6.0 | 9.0 | ref: https://github.com/ggerganov/llama.cpp#quantization #### RWKV quantization | Format | Perplexity (169M) | Latency, ms (1.5B) | File size, GB (1.5B) | |-----------|-------------------|--------------------|----------------------| | `Q4_0` | 17.507 | *76* | **1.53** | | `Q4_1` | 17.187 | **72** | 1.68 | | `Q4_2` | 17.060 | 85 | **1.53** | | `Q5_0` | 16.194 | 78 | *1.60* | | `Q5_1` | 15.851 | 81 | 1.68 | | `Q8_0` | *15.652* | 89 | 2.13 | | `FP16` | **15.623** | 117 | 2.82 | | `FP32` | **15.623** | 198 | 5.64 | ref: https://github.com/ggerganov/ggml/issues/89#issuecomment-1528781992 This feature is possible thanks to the many contributions in the [llama.cpp](https://github.com/ggerganov/llama.cpp) project: https://github.com/users/ggerganov/projects/2 ### GPU support via cuBLAS Using cuBLAS results mainly in improved Encoder inference speed. I haven't done proper timings, but one can expect at least 2-3 times faster Encoder evaluation with modern NVIDIA GPU cards compared to CPU-only processing. Feel free to post your Encoder benchmarks in issue #89. - Implementation details: https://github.com/ggerganov/whisper.cpp/pull/834 - Usage instructions: [README](https://github.com/ggerganov/whisper.cpp#nvidia-gpu-support-via-cublas) This is another feature made possible by the [llama.cpp](https://github.com/ggerganov/llama.cpp) project. Special recognition to @slaren for putting almost all of this work together --- This release remains in "beta" stage as I haven't verified that everything works as expected. ## What's Changed * Updated escape_double_quotes() Function by @tauseefmohammed2 in https://github.com/ggerganov/whisper.cpp/pull/776 * examples : add missing #include <cstdint> by @pH5 in https://github.com/ggerganov/whisper.cpp/pull/798 * Flush upon finishing inference by @tarasglek in https://github.com/ggerganov/whisper.cpp/pull/811 * Escape quotes in csv output by @laytan in https://github.com/ggerganov/whisper.cpp/pull/815 * C++11style by @wuyudi in https://github.com/ggerganov/whisper.cpp/pull/768 * Optionally allow a Core ML build of Whisper to work with or without Core ML models by @Canis-UK in https://github.com/ggerganov/whisper.cpp/pull/812 * add some tips about in the readme of the android project folder by @Zolliner in https://github.com/ggerganov/whisper.cpp/pull/816 * whisper: Use correct seek_end when offset is used by @ThijsRay in https://github.com/ggerganov/whisper.cpp/pull/833 * ggml : fix 32-bit ARM NEON by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/836 * Add CUDA support via cuBLAS by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/834 * Integer quantisation support by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/540 ## New Contributors * @tauseefmohammed2 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/776 * @pH5 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/798 * @tarasglek made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/811 * @laytan made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/815 * @wuyudi made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/768 * @Canis-UK made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/812 * @Zolliner made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/816 * @ThijsRay made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/833 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.3.0...v1.4.0
v1.3.0
32 weeks ago
## Overview This release should be considered in Beta stage, since I haven't done a lot of testing and I am not sure if I didn't break something. But overall, I believe both the performance and the quality are improved. - Added Core ML support #566 - Restored decoding fallbacks with default size of 2 instead of 5 (f19e23fbd108ec3ac458c7a19b31c930719e7a94) - Pad the audio with zeros instead of the spectrogram (5108b30e6daf361c856abb6b86e5038500bdbeb1) - Added [talk-llama](https://github.com/ggerganov/whisper.cpp/tree/master/examples/talk-llama) example - Added `whisper_state` which allows parallel transcriptions with a single model in memory (#523) The C-style API has been extended significantly to support the new `whisper_state`, but in general should be backwards compatible. The only breaking change is in the callbacks signatures. Please provide feedback in the discussion if you observe any issues. The next release `v1.4.0` will follow up relatively soon and will provide 4-bit integer quantization support. ## What's Changed * update csv output format to match OpenAI's Whisper dataframe output by @hykelvinlee42 in https://github.com/ggerganov/whisper.cpp/pull/552 * Go binding: NewContext now returns a clean context by @polarmoon in https://github.com/ggerganov/whisper.cpp/pull/537 * Added whisper state + default state on the whisper_context by @sandrohanea in https://github.com/ggerganov/whisper.cpp/pull/523 * whisper.android: Enable fp16 instrinsics (FP16_VA) which is supported by ARMv8.2 or later. by @tinoue in https://github.com/ggerganov/whisper.cpp/pull/572 * Add quality comparison helper by @venkr in https://github.com/ggerganov/whisper.cpp/pull/569 * whisper.android: Support benchmark for Android example. by @tinoue in https://github.com/ggerganov/whisper.cpp/pull/542 * Fix MUSL Linux build by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/576 * Change default encoding to UTF-8 by @Kamilake in https://github.com/ggerganov/whisper.cpp/pull/605 * Provide option for creating JSON output by @tuxpoldo in https://github.com/ggerganov/whisper.cpp/pull/615 * readme : add react-native bindings by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/619 * Fixed language auto-detection for state provided processing. by @sandrohanea in https://github.com/ggerganov/whisper.cpp/pull/627 * xcodeproj : add `-O3 -DNDEBUG` in release mode by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/640 * Nodejs Addon blocking main thread. Implemented Napi::AsyncWorker by @LucasZNK in https://github.com/ggerganov/whisper.cpp/pull/642 * Include link to R wrapper in README by @jwijffels in https://github.com/ggerganov/whisper.cpp/pull/626 * Add a cmake flag to disable F16C by @a5huynh in https://github.com/ggerganov/whisper.cpp/pull/628 * Add talk-llama example by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/664 * Add Alpaca support to talk-llama example by @ejones in https://github.com/ggerganov/whisper.cpp/pull/668 * Update README.md by @razodactyl in https://github.com/ggerganov/whisper.cpp/pull/682 * issue #470 - working 32-bit ARM by @clach04 in https://github.com/ggerganov/whisper.cpp/pull/486 * whisper : add initial_prompt param by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/645 * fix typo in JSON output by @egorFiNE in https://github.com/ggerganov/whisper.cpp/pull/648 * Fix shell script ./models/download-ggml-model.sh to handle spaces and special characters in paths by @be-next in https://github.com/ggerganov/whisper.cpp/pull/677 * Fixed test to new async implementation by @LucasZNK in https://github.com/ggerganov/whisper.cpp/pull/686 * Minor: fixing usage message for talk-llama by @InconsolableCellist in https://github.com/ggerganov/whisper.cpp/pull/687 * Small typo by @ZiggerZZ in https://github.com/ggerganov/whisper.cpp/pull/688 * feat: add progress callback by @pajowu in https://github.com/ggerganov/whisper.cpp/pull/600 * ggml : fix q4_1 dot product types by @novag in https://github.com/ggerganov/whisper.cpp/pull/759 * Exposed various parts to the Go Interface by @bmurray in https://github.com/ggerganov/whisper.cpp/pull/697 * Adds shell command example for --print-colors by @bocytko in https://github.com/ggerganov/whisper.cpp/pull/710 * Makefile: disable avx in case f16c is not available by @duthils in https://github.com/ggerganov/whisper.cpp/pull/706 * Making the quick start instructions clearer. by @Onlyartist9 in https://github.com/ggerganov/whisper.cpp/pull/716 * Add lrc output support by @WhichWho in https://github.com/ggerganov/whisper.cpp/pull/718 * Corrects default speak.sh path in talk-llama by @mab122 in https://github.com/ggerganov/whisper.cpp/pull/720 * Add msvc compiler args /utf-8 fix error C3688 by @WhichWho in https://github.com/ggerganov/whisper.cpp/pull/721 * Changed convert-pt-to-ggml.py to use .tiktoken tokenizer files by @ivan-gorin in https://github.com/ggerganov/whisper.cpp/pull/725 * talk/talk-llama: add basic example script for eleven-labs tts by @DGdev91 in https://github.com/ggerganov/whisper.cpp/pull/728 * readme : add Unity3d bindings by @Macoron in https://github.com/ggerganov/whisper.cpp/pull/733 * Update stream.cpp by @AliAlameh in https://github.com/ggerganov/whisper.cpp/pull/501 * Fix typos in whisper.h by @GitAritron in https://github.com/ggerganov/whisper.cpp/pull/737 * Update LICENSE by @masguit42 in https://github.com/ggerganov/whisper.cpp/pull/739 * fix potential memory leaks by @baderouaich in https://github.com/ggerganov/whisper.cpp/pull/740 * readme: Add alternate swift bindings by @exPHAT in https://github.com/ggerganov/whisper.cpp/pull/755 * Fix the bug related to word splitting errors in the "tokenize" function. by @AfryMask in https://github.com/ggerganov/whisper.cpp/pull/760 * Do not launch threads for `log_mel_spectrogram` when singlethreaded by @maxilevi in https://github.com/ggerganov/whisper.cpp/pull/763 * Core ML support by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/566 * ggml : fix build on whisper.android (ARM_NEON) by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/764 ## New Contributors * @hykelvinlee42 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/552 * @tinoue made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/572 * @venkr made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/569 * @Kamilake made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/605 * @tuxpoldo made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/615 * @jhen0409 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/619 * @LucasZNK made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/642 * @jwijffels made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/626 * @a5huynh made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/628 * @ejones made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/668 * @razodactyl made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/682 * @clach04 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/486 * @egorFiNE made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/648 * @be-next made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/677 * @InconsolableCellist made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/687 * @ZiggerZZ made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/688 * @pajowu made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/600 * @novag made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/759 * @bmurray made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/697 * @bocytko made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/710 * @duthils made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/706 * @Onlyartist9 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/716 * @WhichWho made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/718 * @mab122 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/720 * @ivan-gorin made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/725 * @DGdev91 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/728 * @Macoron made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/733 * @AliAlameh made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/501 * @GitAritron made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/737 * @masguit42 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/739 * @baderouaich made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/740 * @exPHAT made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/755 * @AfryMask made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/760 * @maxilevi made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/763 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.2.1...v1.3.0
v1.2.1
39 weeks ago
## Overview This is a minor release. The main reason for it is a critical bug fix that causes the software to crash randomly when the language auto-detect option is used (i.e. `whisper_lang_auto_detect()`). Other than that, the release includes refactoring of the examples, ruby bindings and some minor changes to the C API. You can provide feedback in the existing [v1.2.0 discussion](https://github.com/ggerganov/whisper.cpp/discussions/467). ## What's Changed #### Core `ggml` / `whisper` * `whisper` : whisper : add "split_on_word" flag when using using "max_len" option by @mightymatth in #455 and @boolemancer in https://github.com/ggerganov/whisper.cpp/pull/476 * `whisper` : add whisper_full_lang_id() for getting the context lang by @kamranjon in https://github.com/ggerganov/whisper.cpp/pull/461 * `whisper` : fixed Beam Search Strategy and exposed whisper_pcm_to_mel_phase_vocoder by @sandrohanea in https://github.com/ggerganov/whisper.cpp/pull/474 * `whisper` : suppress non-speech-related token outputs by @shibukazu in https://github.com/ggerganov/whisper.cpp/pull/473 * `cmake` : install whisper.h header by @aviks in https://github.com/ggerganov/whisper.cpp/pull/485 * `whisper` : fix signedness compiler warning by @shikokuchuo in https://github.com/ggerganov/whisper.cpp/pull/506 * `whisper` : by default disable non-speech tokens suppression #473 * `whisper` : add API for applying custom logits filters during decoding 0d229163bbea769c7a3e0e500e45850c9a6e2e42 * `whisper` : fix uninitialized `exp_n_audio_ctx` by @Finnvoor in https://github.com/ggerganov/whisper.cpp/pull/520 #### Bindings * `bindings` : add Ruby by @taf2 in https://github.com/ggerganov/whisper.cpp/pull/500 * `readme` : add .NET repos (#303) * `readme` : add cython bindings (#9) * `readme` : add pybind11 bindings by @aarnphm in https://github.com/ggerganov/whisper.cpp/pull/538 #### Examples * `ci` : add node addon test and optimize compilation configuration by @chenqianhe in https://github.com/ggerganov/whisper.cpp/pull/468 * `yt-wsp.sh` : add unique filename generation by @genevera in https://github.com/ggerganov/whisper.cpp/pull/495 * `examples` : refactor in order to reuse code and reduce duplication by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/482 * `main` : fix stdin pipe stream by @conradg in https://github.com/ggerganov/whisper.cpp/pull/503 * `make` : add "-mcpu=native" when building for aarch64 (#532) #### C-style API * Add `whisper_pcm_to_mel_phase_vocoder()` * Add `*(whisper_logits_filter_callback)()` * Change `struct whisper_full_params` * Add `whisper_full_lang_id()` ## New Contributors * @mightymatth made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/455 * @kamranjon made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/461 * @sandrohanea made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/474 * @shibukazu made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/473 * @genevera made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/495 * @shikokuchuo made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/506 * @conradg made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/503 * @taf2 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/500 * @Finnvoor made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/520 * @aarnphm made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/538 * @FlippFuzz made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/532 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.2.0...v1.2.1 ## Highlights Recently, I have been making progress on adding integer quantisation support in the `ggml` tensor library. This will eventually allow to use quantised models which require less memory and will hopefully run faster. I think the next major release `v1.3.0` will officially add quantisation support. For now, you can keep track of the progress in #540 --- - **🎙️ MacWhisper by @jordibruin powered by whisper.cpp** https://goodsnooze.gumroad.com/l/macwhisper <div align="center"> <a href="https://goodsnooze.gumroad.com/l/macwhisper"><img width="1663" alt="image" src="https://user-images.githubusercontent.com/1991296/223670514-5b482ec2-bee3-44c9-b90f-724da750cdf3.png"></a> </div>
v1.2.0
42 weeks ago
## Overview In this release we significantly reduce the memory usage during inference by introducing "scratch" buffers to `ggml`. The new memory requirements per model are as follows: | Model | Disk | Mem (Old) | Mem (New) | | --- | --- | --- | --- | | tiny | 75 MB | ~390 MB | ~125 MB | | base | 142 MB | ~500 MB | ~210 MB | | small | 466 MB | ~1.0 GB | ~600 MB | | medium | 1.5 GB | ~2.6 GB | ~1.7 GB | | large | 2.9 GB | ~4.7 GB | ~3.3 GB | It's a simple idea that instead of creating a new memory buffer for each new tensor in the computation, we reuse the memory of old tensors that are no longer needed. The implementation is in PR #431. It's not very clean - I think there is some better way to do this, but for now it will work. Additionally, there might be some inference speed improvements on Apple Silicon in the Decoder part of the transformer. I haven't done proper benchmarks, but seems there is about ~30% performance boost. The results are identical to `v1.1.1`. ## What's Changed #### Core `ggml` / `whisper` * `whisper` : PPC64 big-endian support by @fitzsim in https://github.com/ggerganov/whisper.cpp/pull/398 * `whisper` : condition sampled timestamp tokens to be monotonically increasing by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/425 * `wasm` : fix typo in helper.js by @bhbs in https://github.com/ggerganov/whisper.cpp/pull/459 * `ggml`/`whisper` : reduce memory usage during inference by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/431 #### Bindings * `ci` : run workflows on pull requests + bindings depend on .h by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/446 * `go` : added wrappers to reset and print timings by @glaslos in https://github.com/ggerganov/whisper.cpp/pull/436 * `go` : add WhisperLangAutoDetect method to go binding by @RobinXL in https://github.com/ggerganov/whisper.cpp/pull/451 * `go` : add wrapper for system info by @glaslos in https://github.com/ggerganov/whisper.cpp/pull/456 * `go` : support "auto" as an option when set language by @polarmoon in https://github.com/ggerganov/whisper.cpp/pull/462 #### Examples * `whisper.wasm` : add labels for easier radio selection by @kokes in https://github.com/ggerganov/whisper.cpp/pull/435 * `livestream.sh` : run main with model arg instead of default by @EricTendian in https://github.com/ggerganov/whisper.cpp/pull/453 * `main` : CSV format export trimmed spaces fix by @alex-bacart in https://github.com/ggerganov/whisper.cpp/pull/444 * `addon.node` : using whisper as a Node.js addon by @chenqianhe in https://github.com/ggerganov/whisper.cpp/pull/443 ## New Contributors * @kokes made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/435 * @glaslos made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/436 * @EricTendian made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/453 * @RobinXL made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/451 * @alex-bacart made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/444 * @bhbs made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/459 * @polarmoon made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/462 * @chenqianhe made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/443 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.1.1...v1.2.0 ## Highlights I'll use these release notes to write some random thoughts about the project - sort of a short blog post. I'm really happy with how `whisper.cpp` turned out to be so far. There is a very positive reception in the ML community - most people seem to be excited by the simplicity of the implementation and the fact that it is quite self-contained. I receive a lot of questions about the project and about various ideas that it can be applied to. I really enjoy it and I try to respond to everyone! I also find it very satisfying that there are so many contributions already happening by so many people. To me this illustrates the power of open-source collaboration. The contributions not only improve the functionality and the quality of the code, but also help to generate various new ideas and approaches to explore. Another interesting thing is that the project keeps on giving. Every time I start to think that now is a good time to put it in the background for a while and focus on other stuff, some new cool idea pops up and I can't help but start working on it. Having this custom implementation allows me to interact with the model on a lower level which opens some interesting ways to explore it. So far the development has been focused on improving the performance, expanding the platform coverage and having robust decoding strategies with a variety of examples. During this time, there have been several ideas that accumulated over-time which I find interesting to explore (diarization, token-level timestamps, improved timestamp accuracy, etc). I think I'll try to focus more on these in the future and see if I can achieve something interesting. --- - **Windows port of `whisper.cpp` utilising vendor-agnostic GPGPU based on DirectCompute by @Const-me** https://github.com/Const-me/Whisper --- - **"The New Yorker" article featuring `whisper.cpp`** <div align="center"> <h2><a href="https://www.newyorker.com/tech/annals-of-technology/whispers-of-ais-modular-future">Whispers of A.I.’s Modular Future</a></h2> <a href="https://www.newyorker.com/tech/annals-of-technology/whispers-of-ais-modular-future"><img width="1663" alt="image" src="https://media.newyorker.com/photos/63d93e688b2aff35d30ef8e2/master/w_2560,c_limit/Somers_final.jpg"></a> </div>
v1.1.1
44 weeks ago
## Overview Since the [v1.1.0](https://github.com/ggerganov/whisper.cpp/releases/tag/v1.1.0) pre-release there have been several reports of improved transcription quality. Together with my observations, I think we can declare version `v1.1.1` as "stable". There were actually a couple of bug-fixes implemented since `v1.1.0`, so make sure to update to `v1.1.1` for optimal results. Another update is that the prototype for [v1.2.0](https://github.com/ggerganov/whisper.cpp/discussions/126) is almost ready: https://github.com/ggerganov/whisper.cpp/pull/431 Initial results indicate that the memory usage can be reduced by a factor of 2-3 for the smaller models. You can provide feedback in the existing [v1.1.0 discussion](https://github.com/ggerganov/whisper.cpp/discussions/408). ## What's Changed #### Core `ggml` / `whisper` * `whisper` : perform entropy check only when we have at least 32 tokens 1a91c19af929d6dc614a9f3b03026fb23be002a6 * `whisper` : fix condition for providing past prompt (critical) 78f166174f126345ed87cc8f6941af1905c4a0f2 #### Bindings * `go` : remove `sample_best` and `sample_timestamp` bindings by @Trojan295 in https://github.com/ggerganov/whisper.cpp/pull/409 #### Examples * `main` : re-enable temperature fallback f583e2d2f5a60e6ebf5bb2819ba4c4d348d41ea2 * `main` : add an option to accept optional output filenames by @garychia in https://github.com/ggerganov/whisper.cpp/pull/424 * `whisper.android` : use AssetManager for Android by @Digipom in https://github.com/ggerganov/whisper.cpp/pull/415 * `whisper.wasm` : add small and small.en models 206fc93396936725bd362c93796cfdc8a87f8509 * `bench` : add memcpy and ggml_mul_mat benchmarks (experimental) 1290fc64572f434f2f36721d2e2b0913cec0178a ## New Contributors * @Trojan295 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/409 * @garychia made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/424 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.1.0...v1.1.1
v1.1.0
45 weeks ago
## Overview The major change in this pre-release is the improved decoding implementation in `whisper.cpp`: - Support for average logprob and entropy based criteria for fallback - Support for temperature `T > 0` - Improved Greedy decoder via `best_of` parameter for `T > 0` - Add beam search decoding (a.k.a `beam_size`) More information about the decoding changes can be found in #291 Additionally, there are a few performance improvements for Apple Silicon, WASM and non-F16C platforms. Support for POWER9 architectures has been added. The reason that this is a pre-release and not an official release is that the new implementation has not been sufficiently tested yet and the existing bindings for other languages have not been updated to support the API changes. The official release `1.1.x` will be created when there is enough feedback about the new decoding implementation and when the bindings have been updated. So make sure to send your feedback in the [discussion](https://github.com/ggerganov/whisper.cpp/discussions/408) created for this pre-release. For now, the `1.0.4` release should be considered more stable. ## What's Changed #### Core `ggml` / `whisper` * `ggml` : POWER9 support by @fitzsim in #320, #349, #369 * `ggml` : simplify the SIMD code by @ggerganov in #324 * `ggml` : add SSE3 and fp16 conversion lookup table by @abitofevrything in #368 * `ggml` : utilise Accelerate's vDSP for some computations d51fc3ee0a0038cdf1522ca3d58b58299de41eb8 * `ggml` : speed-up softmax compute via Accelerate and loop unrolling d61d55cd4b9fe77511c8eea28d0220ce552f7008 * `ggml` : do not start extra threads when using BLAS d347a59a5f224f6a5ab0084ec95715451972d3b0 * `whisper` : do sample_to_timestamp calculation with 64 bit precision to avoid overflow by @boolemancer in #388 * `whisper` : various code clean-up and improvements by @asmaloney in #317 #318 #319 #322 etc * `whisper` : improve decoding by @ggerganov in #291 * `whisper` : account for speed_up flag for short audio #405 #### C-style API * Add loader class to allow loading from buffer and others by @prsyahmi in https://github.com/ggerganov/whisper.cpp/pull/353 * Add `whisper_token_data::plog` * Add `whisper_init_from_file()` * Add `whisper_init_from_buffer()` * Change `whisper_init()` * Remove `whisper_sample_best()` * Remove `whisper_sample_timestamp()` * Add `whisper_n_audio_ctx()` * Add `whisper_get_logits()` * Remove `whisper_get_probs()` * Change `struct whisper_full_params` #### Bindings * Golang bindings by @djthorpe in #287, #379, #384 #### Examples * `whisper.android` : remove android ABI constraint by @Digipom in #301 * `whisper.swiftui` : SwiftUI example by @Digipom in #308 * `main` : add `-ocsv`, aka `--output-csv` for writing CSV file containing millisecond timestamps by @NielsMayer in #340 * `command` : refactor to split command list & general transcription modes by @asmaloney in #331 * `command` : always-prompt mode by @dnhkng in #383 * `stream` : fix data race on bool + avoid division-by-zero a466c3404dc62dc221061bb37fb8f78741d749b8 * `stream` : fix a bug that inserted a lot of empty audio at the start a6dbd9188b13378dc36e2c669b9a22e17b4201d1 * `bench.wasm` : print system info fafd78945d5a7ea11ffa31fa6c05dd6593b7d031 ## New Contributors * @djthorpe made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/287 * @0xmohit made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/296 * @asmaloney made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/298 * @fitzsim made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/320 * @NielsMayer made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/340 * @aviks made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/345 * @eltociear made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/346 * @abitofevrything made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/368 * @Mike-Bell made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/381 * @dnhkng made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/383 * @prsyahmi made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/353 * @ianb made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/391 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.0.4...v1.1.0 ## Highlights - **Sample SwiftUI application [example/whisper.swiftui](https://github.com/ggerganov/whisper.cpp/tree/master/examples/whisper.swiftui)** <img width="1663" alt="image" src="https://user-images.githubusercontent.com/1991296/212539216-0aef65e4-f882-480a-8358-0f816838fd52.png">
v1.0.4
49 weeks ago
## What's Changed #### Core `ggml` / `whisper` * Make `ggml` compatible with c99 9955fa4ed7cc694d5d47fe0bb5f0d02066f9cbac | 0f117594066a213cc3cc9261c8906f316e6fb153 * Fix UB causing asserts in Debug when reading the model vocabulary 124c718c73f915f3e4235ae2af8841356e76177d * Minor improvements in the Greedy decoding strategy 6a7c82501e3794724ba80bfb9a983810af036803 * Add Windows build without OpenBLAS by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/282 * Add `whisper_tokenize()` - basic text tokenization bf69b669a00e457b6bfa69b97f1fdf2578d3e403 * Language auto-detect option by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/286 * Add AVX,AVX2 support for `ggml_vec_scale_f32` by @katsu560 in https://github.com/ggerganov/whisper.cpp/pull/285 * Implement extra cases for `ggml_compute_forward_dup_f16()` a7047b2a28a8eccb94318eca8a3207894d3822c7 * Added Roadmap and updated F.A.Q. discussion #126 #### C-style API * Add `whisper_tokenize()` * Add `whisper_lang_max_id()` * Add `whisper_lang_str()` * Add `whisper_lang_auto_detect()` * Add `whisper_token_lang()` #### Examples * Improve prompting in "talk" example a613f16aec81b7715cdbd4386ba62ab2ff1216b3 * Add "sliding window" mode to "stream" example b0f8013eb9f371b500abf1e3c506399ce7f59b11 * Add Android sample by @Digipom in https://github.com/ggerganov/whisper.cpp/pull/277 * Guided mode for the "command" example by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/271 * Example "main" supports `--prompt` option b8065d90f5fdcdb445a8fb3f4717cba54c332cac * Example "main" supports `--print-progress` option 32fbc8cd04912904cf84af7c5bd0e0e711a6f021 * Example "main" supports `--lang auto` option fba10a4c68f0533a339174ef81c6a18ea228d331 ## New Contributors * @Digipom made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/277 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/1.0.3...1.0.4 ## Highlights - **Sample Android application [example/whisper.android](https://github.com/ggerganov/whisper.cpp/tree/master/examples/whisper.android)** <p align="center"> <img width="629" alt="image" src="https://user-images.githubusercontent.com/1991296/208256401-7ebab53f-b788-4b15-8860-71825ef578c4.png"> <img width="200" alt="image" src="https://user-images.githubusercontent.com/1991296/208154256-82d972dc-221b-48c4-bfcb-36ce68602f93.png"> </p> - **General-purpose, short voice command detection on Raspberry Pi 4 using [example/command](https://github.com/ggerganov/whisper.cpp/tree/master/examples/command)**: https://user-images.githubusercontent.com/1991296/208255185-6e9d60ea-4bc8-4b64-b731-8ca9f3b7333b.mp4
iOS macOS watchOS tvOS
mozilla-mobile/firefox-ios v120.2
Firefox for iOS
⭐️ 11,714
🕓 7 hours ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
v120.2
17 hours ago
# Overview This is our official v120.2 release of Firefox-iOS. It's based on the [v120 branch](https://github.com/mozilla-mobile/firefox-ios/tree/release/v120) ## Differences between v120.1 & v120.2 You can view the changes between our previous and newly released version [here](https://github.com/mozilla-mobile/firefox-ios/compare/v120.1...v120.2).
v120.1
5 days ago
# Overview This is our official v120.1 release of Firefox-iOS. It's based on the [v120 branch](https://github.com/mozilla-mobile/firefox-ios/tree/release/v120) ## Differences between v120.0 & v120.1 You can view the changes between our previous and newly released version [here](https://github.com/mozilla-mobile/firefox-ios/compare/v120.0...v120.1).
v120.0
1 week ago
# Overview This is our official v120.0 release of Firefox-iOS. It's based on the [v120 branch](https://github.com/mozilla-mobile/firefox-ios/tree/release/v120) ## Differences between v119.2 & v120.0 You can view the changes between our previous and newly released version [here](https://github.com/mozilla-mobile/firefox-ios/compare/v119.2...v120.0).
v119.2
3 weeks ago
# Overview This is our official v119.2 release of Firefox-iOS. It's based on the [v119 branch](https://github.com/mozilla-mobile/firefox-ios/tree/release/v119) ## Differences between v119.1 & v119.2 You can view the changes between our previous and newly released version [here](https://github.com/mozilla-mobile/firefox-ios/compare/v119.1...v119.2).
v119.1
4 weeks ago
# Overview This is our official v119.1 release of Firefox-iOS. It's based on the [v119 branch](https://github.com/mozilla-mobile/firefox-ios/tree/release/v119) ## Differences between v119.0 & v119.1 You can view the changes between our previous and newly released version [here](https://github.com/mozilla-mobile/firefox-ios/compare/v119.0...v119.1).
v119.0
5 weeks ago
# Overview This is our official v119.0 release of Firefox-iOS. It's based on the [v119 branch](https://github.com/mozilla-mobile/firefox-ios/tree/release/v119) ## Differences between v118.2 & v119.0 You can view the changes between our previous and newly released version [here](https://github.com/mozilla-mobile/firefox-ios/compare/v118.2...v119.0).
v118.2
6 weeks ago
# Overview This is our official v118.2 release of Firefox-iOS. It's based on the [v118 branch](https://github.com/mozilla-mobile/firefox-ios/tree/release/v118) ## Differences between v118.1 & v118.2 You can view the changes between our previous and newly released version [here](https://github.com/mozilla-mobile/firefox-ios/compare/v118.1...v118.2).
v118.1
8 weeks ago
# Overview This is our official v118.1 release of Firefox-iOS. It's based on the [v118 branch](https://github.com/mozilla-mobile/firefox-ios/tree/release/v118) ## Differences between v118.0 & v118.1 You can view the changes between our previous and newly released version [here](https://github.com/mozilla-mobile/firefox-ios/compare/v118.0...v118.1).
v118.0
9 weeks ago
# Overview This is our official v118.0 release of Firefox-iOS. It's based on the [v118 branch](https://github.com/mozilla-mobile/firefox-ios/tree/release/v118) ## Differences between v117.3 & v118.0 You can view the changes between our previous and newly released version [here](https://github.com/mozilla-mobile/firefox-ios/compare/v117.3...v118.0).
v117.3
11 weeks ago
# Overview This is our official v117.3 release of Firefox-iOS. It's based on the [v117 branch](https://github.com/mozilla-mobile/firefox-ios/tree/release/v117) ## Differences between v117.2 & v117.3 You can view the changes between our previous and newly released version [here](https://github.com/mozilla-mobile/firefox-ios/compare/v117.2...v117.3).
iOS macOS
mas-cli/mas v1.8.7-beta.1
:package: Mac App Store command line interface
⭐️ 10,219
🕓 3 days ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
v1.8.6: 🌍 Localize queries
1 year ago
## Changes * 🌍 Localize queries (#443) @chris-araman * ♻️ Simplify pointer dance (#440) @chris-araman * 🚧 Migrate to Danger Swift (#434) @chris-araman * ⬆️ PromiseKit (6.16.2) (#435) @chris-araman * 🍼 Use the custom tap formula when bottling for the custom tap (#430) @chris-araman * 📄 Fix typo in README (#432) @revolter * ⬆️ Danger (8.4.2) (#433) @dependabot
v1.8.5: 🐛 Allow redownloads on macOS 12 Monterey
2 years ago
## 🐛 Bug Fixes * 🐛 Allow redownloads on macOS 12 Monterey (#428) @chris-araman
v1.8.4: 🪜 Unsupported updates != outdated
2 years ago
## Changes * ⚠️ Add a temporary warning about macOS Monterey (#427) @chris-araman * :bug: Print warnings and errors to stderr (#427) @chris-araman * :bug: Use POSIX-compliant tail syntax (#418) @jlec * 🍺 Include macOS 12 Monterey when bottling (#424) @chris-araman * ⬆️ PromiseKit (6.16.1) (#425) @chris-araman * ⬆️ danger (8.4.1) (#423) @dependabot * 🐛 Don't consider an app outdated if the update can't be installed on the current OS (#422) @phatblat * ⬆️ Danger (8.4.0) (#419) @dependabot * ⬆️ PromiseKit (6.16.0) (#415) @chris-araman * 🍺 Homebrew formula for 1.8.3 (#411) @phatblat
v1.8.3: 🐛 Ignore applications moved outside the system Applications folder
2 years ago
## 🐛 Bug Fixes * 🏡 Ignore applications moved outside the system Applications folder (#376) @chris-araman * 🩹 Display decimal progress percentage (#399) @mtoohey31 ## Changes * ⚙️ Prepare for Xcode 13 (#407) @chris-araman * 🧹 Enable linting with Xcode 13 beta 3 (#406) @chris-araman * ⬆️ Periphery (2.7.1), Ruby (3.0.2), SwiftFormat (0.48.9) (#400) @chris-araman * ⬆️ Danger (8.3.1) (#401) @dependabot * 🧹 Restore shellcheck (0.7.2) (#396) @chris-araman * ⬆️ Periphery (2.5.2), SwiftFormat (0.48.4), Version (2.0.1) (#394) @chris-araman * 🧹 Remove unused code (#391) @chris-araman * ⬆️ PromiseKit (6.15.0) (#390) @chris-araman * ⬆️ PromiseKit (6.14.0) (#389) @chris-araman * 🧹 Lint in GitHub Actions (#377) @chris-araman * 🚨 Fail CI task if tests fail (#381) @chris-araman * ⬆️ Nimble (9.2.0) (#374) @chris-araman * 🤞🏼 Rephrase async code as PromiseKit Promises (#362) @chris-araman * 🧹 Lint with periphery (#372) @chris-araman * 🍺 Publish bottles for custom tap to GitHub Releases (#373) @chris-araman * 🪧 Update references to main branch (#370) @chris-araman * ⬆️ Quick (4.0.0), Nimble (9.1.0) (#367) @chris-araman
v1.8.2: 🐛 Fix for upgrade command
2 years ago
## 🐛 Bug Fixes * 🔍 Upgrade only to newer versions (#346) @chris-araman * 🪣 Use an ephemeral session (#345) @chris-araman * 🐛 Restore AppListFormatter (#339) @phatblat ## Changes * ♻️ Remove unused test helpers (#361) @chris-araman * ♻️ Build URLs using URLComponents (#360) @chris-araman * 💡 Turn on the OutputListener tests (#359) @chris-araman * 🧹 Lint (#358) @chris-araman * 🖊 Lint markdown (#356) @chris-araman * 🖨 Override print only in debug builds (#355) @chris-araman * 📄 Update README (#354) @chris-araman * 🤖 Configure Dependabot to update Ruby Gems (#352) @chris-araman * 📦 Declare mas as a Swift Package (#350) @chris-araman * Bump rexml from 3.2.4 to 3.2.5 (#353) @dependabot * 📄 Fix broken link to softwareupdate man page (#348) @chris-araman * ⬆️ Nimble (9.0.1) (#349) @chris-araman * 🛠 Update to Xcode 12-compatible project format (#343) @chris-araman * 💪🏼 Add arm64_big_sur to bottle script (#342) @phatblat * 📦 Remove sources of Carthage dependencies (#341) @chris-araman * 🔨 Update tools for development on Apple Silicon (#334) @chris-araman * 👷🏻‍♂️ Add GitHub Actions Build & Test workflow (#254) @phatblat * 🍺 Update Brew formula for 1.8.1 (#332) @phatblat
v1.8.1: 📼 Fix outdated & upgrade commands
2 years ago
## Changes * 🔖 Release 1.8.1 (#327) @phatblat * Add release drafter (#324) @flaxel * 📝 Update note about minimum macOS version in README (#318) @modprobe * info command now outputs ISO date format (#323) @rgoldberg * 🍼 Formula updates from 1.8 release (#319) @phatblat ## 🐛 Bug Fixes * Fix outdated & upgrade commands (#312) @rgoldberg
v1.8.0: 💪🏼 arm64 support for M1 Macs
2 years ago
- ✨ Support for Apple Silicon (arm64) #310 thanks, [@chris-araman](https://github.com/chris-araman)! - ⚒️ Xcode 12.2 and macOS 10.15.4 required to build - 🕊 Swift 5.2 #310 - ⚒️ Xcode 11.4 and macOS 10.15.2 required to build - 🐛 Specify desired `LD_RUNPATH_SEARCH_PATHS` at link-time #310 - 🐛 Default PREFIX to /opt/homebrew on Apple Silicon (arm64) - ⬆️ Commandant (0.18.0) #310 - ⬆️ Nimble (9.0.0) #310 - ⬆️ Quick (3.1.0) #310 - 🎨 Improve `mas list` command output #278 thanks, [@danielbayley](https://github.com/danielbayley)! - 🐛 Fix alignment of 2nd column of list command output #298 - ✨ `Makefile` #277
v1.7.1: 🐛 Search JSON Fix
3 years ago
- 🐛 Account for missing JSON fields in search results #299 For more details, see the [1.7.1 milestone](https://github.com/mas-cli/mas/issues?q=is%3Aclosed+milestone%3A1.7.1).
v1.7.0: 🛍 Purchase Command
3 years ago
- ✨ New `purchase` command for purchasing free apps #264 (resolves #2, #145) thanks, [@blochberger](https://github.com/blochberger)! - 🐟 Seriously more interactive fish completions #242 thanks, [@lwolfsonkin](https://github.com/lwolfsonkin)! - ⬆️ Nimble (8.0.9) #274 - 🛠 Xcode 11.5 #273 - 🧹 Purchase cleanup #272 - ♻️ SoftwareMap Protocol #271 - 🕊 Swift 5 #255 - ⚒️ Xcode 10.2 and macOS 10.14 required to build - ⬆️ Commandant (0.17.0) #255 - ⬆️ Nimble (8.0.4) #255 - ⬆️ Quick (2.2.0) #255 - ➖ Result #255 - 💡 Update readme with simpler tap usage #241
v1.6.4: 🔎 Search Fix
3 years ago
- 🐛 Fix search parameters #269
macOS
pointfreeco/swift-composable-architecture 1.5.0
A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
⭐️ 10,105
🕓 2 days ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
1.5.0
2 days ago
## What's Changed * Added: A new `Store.scope` method that takes a state key path and action case key path (https://github.com/pointfreeco/swift-composable-architecture/pull/2527). This method uses the hashability of key paths to cache scoped child stores in the parent, improving the performance of store scoping, especially when SwiftUI views are recomputed. See [the migration guide](https://pointfreeco.github.io/swift-composable-architecture/main/documentation/composablearchitecture/migratingto1.5) for more info. * Added: DependenciesMacros is now automatically exported, making `@DependencyClient` available by default when importing the Composable Architecture (thanks @tgrapperon, https://github.com/pointfreeco/swift-composable-architecture/pull/2586). * Infrastructure: Fixed links in the migration guide (thanks @woxtu, https://github.com/pointfreeco/swift-composable-architecture/pull/2578). **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.4.2...1.5.0
1.4.2
1 week ago
## What's Changed * Fixed: `swift-case-paths` is now correctly pinned from 1.1.0, which should avoid some SPM resolution issues (thanks @bdolewski-intellias, https://github.com/pointfreeco/swift-composable-architecture/pull/2577). ## New Contributors * @bdolewski-intellias made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2577 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.4.1...1.4.2
1.4.1
1 week ago
## What's Changed * Fixed: A regression in `Reducer.forEach` was introduced in 1.4 that broke compilation in some cases, notably in the TCACoordinators library. This regression has been corrected (thanks @rhysm94, https://github.com/pointfreeco/swift-composable-architecture/pull/2570). * Infrastructure: Updated Japanese and Korean README translations (thanks @Achoo-kr, https://github.com/pointfreeco/swift-composable-architecture/pull/2563, https://github.com/pointfreeco/swift-composable-architecture/pull/2562). * Infrastructure: Fixed documentation links (thanks @johankool, https://github.com/pointfreeco/swift-composable-architecture/pull/2566, https://github.com/pointfreeco/swift-composable-architecture/pull/2576); fixed migration guide typos (thanks @kalupas226, https://github.com/pointfreeco/swift-composable-architecture/pull/2569; @woxtu, https://github.com/pointfreeco/swift-composable-architecture/pull/2575; @Ryu0118, https://github.com/pointfreeco/swift-composable-architecture/pull/2574). * Infrastructure: Clean up case study (thanks @mike123789-dev, https://github.com/pointfreeco/swift-composable-architecture/pull/2567). ## New Contributors * @Achoo-kr made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2563 * @mike123789-dev made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2567 * @woxtu made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2575 * @rhysm94 made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2570 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.4.0...1.4.1
1.4.0
2 weeks ago
## What's Changed * Added: The `@Reducer` macro (https://github.com/pointfreeco/swift-composable-architecture/pull/2553). See the [migration guide](https://pointfreeco.github.io/swift-composable-architecture/main/documentation/composablearchitecture/migratingto1.4/) for more details. * Added: Reducer builder support for `any Reducer<State, Action>` (https://github.com/pointfreeco/swift-composable-architecture/pull/2533). * Fixed: Silenced a SwiftUI sendability warning (https://github.com/pointfreeco/swift-composable-architecture/pull/2540). * Fixed: Alert and confirmation dialog helpers now use `Text(verbatim: "")` to avoid localization warnings (https://github.com/pointfreeco/swift-composable-architecture/pull/2541). * Fixed: `Reducer.onChange` no longer requires an `Equatable` conformance (thanks @lukaskubanek, https://github.com/pointfreeco/swift-composable-architecture/pull/2545). * Infrastructure: Updated Swift compiler version to 5.7.1 to follow Apple's policy (thanks @jaesung-0o0, https://github.com/pointfreeco/swift-composable-architecture/pull/2549). * Fixed: Short circuit equatability of ordered sets when counts don't match (https://github.com/pointfreeco/swift-composable-architecture/pull/2556). * Infrastructure: Added previews to integration test cases by (https://github.com/pointfreeco/swift-composable-architecture/pull/2551) ## New Contributors * @lukaskubanek made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2545 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.3.0...1.4.0
1.3.0
4 weeks ago
## What's Changed * Added: `dismiss(transaction:)` dependency (thanks @tomokisun, https://github.com/pointfreeco/swift-composable-architecture/pull/2433). * Fixed: `Reducer.ifLet` child effects are now properly cancelled when reset by a parent (https://github.com/pointfreeco/swift-composable-architecture/pull/2402). * Fixed: Added missing `file` and `line` parameters to `dismiss` dependency (thanks @heiberg, https://github.com/pointfreeco/swift-composable-architecture/pull/2440). * Fixed: Only dismiss alert/dialog state when receiving a domain-specific action (https://github.com/pointfreeco/swift-composable-architecture/pull/2468). * Fixed: Serialize `Reducer._printChanges()` (https://github.com/pointfreeco/swift-composable-architecture/pull/2519). * Infrastructure: README, tutorial, and other assorted fixes (thanks @zooxop, https://github.com/pointfreeco/swift-composable-architecture/pull/2405; thanks @filblue, https://github.com/pointfreeco/swift-composable-architecture/pull/2418, https://github.com/pointfreeco/swift-composable-architecture/pull/2467, https://github.com/pointfreeco/swift-composable-architecture/pull/2486; thanks @yimajo, https://github.com/pointfreeco/swift-composable-architecture/pull/2425, https://github.com/pointfreeco/swift-composable-architecture/pull/2426; thanks @denil-ct, https://github.com/pointfreeco/swift-composable-architecture/pull/2427; thanks @mornin-ystIUBqR, https://github.com/pointfreeco/swift-composable-architecture/pull/2446; thanks @jkimdev, https://github.com/pointfreeco/swift-composable-architecture/pull/2454; thanks @Jager-yoo, https://github.com/pointfreeco/swift-composable-architecture/pull/2442; https://github.com/pointfreeco/swift-composable-architecture/pull/2472; thanks @vasiliyzaycev, https://github.com/pointfreeco/swift-composable-architecture/pull/2474, https://github.com/pointfreeco/swift-composable-architecture/pull/2475; thanks @jtouzy in https://github.com/pointfreeco/swift-composable-architecture/pull/2477; thanks @jaesung-0o0, https://github.com/pointfreeco/swift-composable-architecture/pull/2484, https://github.com/pointfreeco/swift-composable-architecture/pull/2499; thanks @ictechgy, https://github.com/pointfreeco/swift-composable-architecture/pull/2481; thanks @Ryu0118, https://github.com/pointfreeco/swift-composable-architecture/pull/2482; https://github.com/pointfreeco/swift-composable-architecture/pull/2480; thanks @KyleLeneau, https://github.com/pointfreeco/swift-composable-architecture/pull/2493; thanks @kalupas226, https://github.com/pointfreeco/swift-composable-architecture/pull/2498; thanks @kodok1988, https://github.com/pointfreeco/swift-composable-architecture/pull/2511). * Infrastructure: Rename Standups sample project to SyncUps (https://github.com/pointfreeco/swift-composable-architecture/pull/2524); remove meeting feature reducer (https://github.com/pointfreeco/swift-composable-architecture/pull/2410); fixed `.minutes` duration (thanks @filblue, https://github.com/pointfreeco/swift-composable-architecture/pull/2437). * Infrastructure: Bump `actions/checkout` version to `v4` (thanks @Ryu0118, https://github.com/pointfreeco/swift-composable-architecture/pull/2479). * Infrastructure: Clean up `StoreTask.cancel` implementation (thanks @Ryu0118, https://github.com/pointfreeco/swift-composable-architecture/pull/2496). * Infrastructure: Revamp integration tests (https://github.com/pointfreeco/swift-composable-architecture/pull/2503, https://github.com/pointfreeco/swift-composable-architecture/pull/2515). * Infrastructure: Simplify SwiftUI case studies (https://github.com/pointfreeco/swift-composable-architecture/pull/2526). * Infrastructure: Fixed search example debounce duration (thanks @wtsnz, https://github.com/pointfreeco/swift-composable-architecture/pull/2525). ## New Contributors * @zooxop made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2405 * @denil-ct made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2427 * @tomokisun made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2433 * @mornin-ystIUBqR made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2446 * @jkimdev made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2454 * @vasiliyzaycev made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2474 * @jtouzy made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2477 * @ictechgy made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2481 * @KyleLeneau made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2493 * @kodok1988 made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2511 * @wtsnz made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2525 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.2.0...1.3.0
1.2.0
14 weeks ago
## What's Changed * Added: Legacy alert and action sheet presentation APIs for iOS 13 support (https://github.com/pointfreeco/swift-composable-architecture/pull/2379). The `alert(store:)` and `confirmationDialog(store:)` view modifiers are iOS 15+, but we now have `legacyAlert(store:)` and `actionSheet(store:)` for iOS 13+. * Added: `TestStore.bindings` for testing bindable view state (https://github.com/pointfreeco/swift-composable-architecture/pull/2394). * Fixed: Addressed a potential threading issue in `Store.send` (https://github.com/pointfreeco/swift-composable-architecture/pull/2382). * Fixed: Worked around a Catalina runtime crash due to unavailable macOS symbols (thanks @jaredh159, https://github.com/pointfreeco/swift-composable-architecture/pull/2385). * Infrastructure: Docs fixes (thanks @nickkohrn, https://github.com/pointfreeco/swift-composable-architecture/pull/2383; @jaesung-0o0, https://github.com/pointfreeco/swift-composable-architecture/pull/2389). * Infrastructure: Added README section for companion libraries (https://github.com/pointfreeco/swift-composable-architecture/pull/2395). * Infrastructure: Fixed stack case study (https://github.com/pointfreeco/swift-composable-architecture/pull/2397) ## New Contributors * @jaredh159 made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2385 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.1.0...1.2.0
0.59.0
14 weeks ago
## What's Changed * Added: back-ported legacy alert and action sheet APIs for those using iOS 13 alerts and action sheets in their apps (https://github.com/pointfreeco/swift-composable-architecture/pull/2379). * Fixed: Addressed a potential threading issue in `Store.send` (https://github.com/pointfreeco/swift-composable-architecture/pull/2382). * Fixed: Un-deprecated `debounce` and `throttle` overloads restored in 1.1.0 (thanks @pyrtsa, https://github.com/pointfreeco/swift-composable-architecture/pull/2392). **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.58.2...0.59.0
0.58.2
14 weeks ago
## What's Changed * Fixed: Back-ported a deprecation warning fix for `TestStore.init` (thanks @AndreaRomani, https://github.com/pointfreeco/swift-composable-architecture/pull/2378). ## New Contributors * @AndreaRomani made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2378 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.58.1...0.58.2
0.58.1
15 weeks ago
## What's Changed * Fixed: Hard deprecated a few more soft-deprecated APIs for ease of migration (https://github.com/pointfreeco/swift-composable-architecture/pull/2376). **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/0.58.0...0.58.1
1.1.0
15 weeks ago
## What's Changed * Added: An overload of `Reducer.onChange(of:)` that takes a configurable `removeDuplicates` closure for the equality check (thanks @ohitsdaniel, https://github.com/pointfreeco/swift-composable-architecture/pull/2338). * Added: `Effect.debounce` and `Effect.throttle`, for debouncing and throttling effects on a scheduler (https://github.com/pointfreeco/swift-composable-architecture/pull/2372, https://github.com/pointfreeco/swift-composable-architecture/pull/2368). This functionality existed in past releases but was removed from 1.0 alongside other deprecated Combine code. Because there is no modern replacement for `Effect.throttle` we have brought this functionality back to 1.1. * Fixed: XCTest failures emitted when test stores initialize state (_e.g._ if `Reducer.State.init` accesses a dependency that hasn't been overridden) are now shown in the test that creates the store rather than hidden in application code (https://github.com/pointfreeco/swift-composable-architecture/pull/2352). * Fixed: Suppressed a warning that previously emitted when instantiating a test store state with `.init()` instead of `Feature.State()` (https://github.com/pointfreeco/swift-composable-architecture/pull/2347). * Fixed: Child features presented by _grandparent_ features are now properly dismissed when the child calls `@Dependency(\.dismiss)` (https://github.com/pointfreeco/swift-composable-architecture/pull/2373). * Infrastructure: Documentation updates and fixes (https://github.com/pointfreeco/swift-composable-architecture/pull/2336; thanks @jayrhynas, https://github.com/pointfreeco/swift-composable-architecture/pull/2342; thanks @Atimca, https://github.com/pointfreeco/swift-composable-architecture/pull/2350; https://github.com/pointfreeco/swift-composable-architecture/pull/2353; thanks @hmhv, https://github.com/pointfreeco/swift-composable-architecture/pull/2355; thanks @Ryu0118, https://github.com/pointfreeco/swift-composable-architecture/pull/2358, https://github.com/pointfreeco/swift-composable-architecture/pull/2367; thanks @yimajo, https://github.com/pointfreeco/swift-composable-architecture/pull/2357; thanks @ValseLee, https://github.com/pointfreeco/swift-composable-architecture/pull/2369, https://github.com/pointfreeco/swift-composable-architecture/pull/2370). ## New Contributors * @jayrhynas made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2342 * @Atimca made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2350 * @ValseLee made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2369 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.0.0...1.1.0
iOS macOS watchOS tvOS
apple/swift-package-manager swift-DEVELOPMENT-SNAPSHOT-2023-11-27-a
The Package Manager for the Swift Programming Language
⭐️ 9,442
🕓 19 hours ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
0.6.0
3 years ago
3 years ago
Swift 5.2 Release
3 years ago
4 years ago
4 years ago
5 years ago
4 years ago
Swift 4.2.1 Release
5 years ago
Swift 4.2 Release
5 years ago
Release SwiftPM 0.2.1
5 years ago
iOS macOS
kean/Nuke 12.2.0
Image loading system
⭐️ 7,607
🕓 5 days ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Nuke 12.2
5 days ago
## What's Changed * Add another file type signature for `.m4v` files by @leonid-shevtsov in https://github.com/kean/Nuke/pull/735 * Added the `onStart` callback to` LazyImage` by @urbaneewe in https://github.com/kean/Nuke/pull/736 ## New Contributors * @leonid-shevtsov made their first contribution in https://github.com/kean/Nuke/pull/735 * @urbaneewe made their first contribution in https://github.com/kean/Nuke/pull/736 **Full Changelog**: https://github.com/kean/Nuke/compare/12.1.6...12.2.0
Nuke 12.1.6
14 weeks ago
- Improve `ImageCache` (memory cache) performance by 20% - Improve `NukeExtensions` performance by 5% - Update the code to support future visionOS releases by switching to `canImport` where possible
Nuke 12.2 (Beta 2)
14 weeks ago
- Fix compilation visionOS errors on Xcode 15 Beta 6 > [!WARNING] > Swift Package Manager is not supported yet. There seem to be compilation errors when adding `.visionOS(.v1)` to the list of the supported versions. More updates coming soon.
Nuke 12.1.5
17 weeks ago
- Fix https://github.com/kean/Nuke/issues/717 by moving `DataCache` metadata to a hidden file - https://github.com/kean/Nuke/pull/718
Nuke 12.1.4
18 weeks ago
- Upgrade from `CommonCrypto` to [`CryptoKit`](https://developer.apple.com/documentation/cryptokit) and slightly optimize how cryptographic hashes are converted to strings (used as filenames for `DataCache`) - Deprecate `DataCache/isCompressionEnabled`. It was initially added as a general-purpose feature used in [Pulse](https://github.com/kean/Pulse), but it's not recommended to be used with most image formats. - `DataCache` now performs sweeps less frequently - Minor docs correction – https://github.com/kean/Nuke/pull/715 by @tdkn ## New Contributors * @tdkn made their first contribution in https://github.com/kean/Nuke/pull/715
Nuke 12.1.3
20 weeks ago
- Fix https://github.com/kean/Nuke/issues/709: `LazyImage` fails to perform memory cache lookup in some scenarios - (Internal) Replace some of the custom code with native extensions – https://github.com/kean/Nuke/pull/713 by @openmetrue - Increase the minimum required Xcode version to 14.1 (required by App Store) ## New Contributors * @openmetrue made their first contribution in https://github.com/kean/Nuke/pull/713
Nuke 12.1.2
22 weeks ago
- Fix https://github.com/kean/Nuke/issues/710: build failure on watchOS in debug mode – https://github.com/kean/Nuke/pull/711 by @FieryFlames ## New Contributors * @FieryFlames made their first contribution in https://github.com/kean/Nuke/pull/711
Nuke 12.1.1
22 weeks ago
- Fix https://github.com/kean/Nuke/issues/693: `ImageRequest` created with an async function now executes it lazily - https://github.com/kean/Nuke/pull/708 by @khlopko - Fix https://github.com/kean/Nuke/issues/695: `byCroppingToSquare()` always return square image – https://github.com/kean/Nuke/pull/696 by @zzmasoud - Update unit tests – https://github.com/kean/Nuke/pull/701 by @woxtu - Fix upcoming warnings in Xcode 15 ## New Contributors * @khlopko made their first contribution in https://github.com/kean/Nuke/pull/708
Nuke 12.2 (Beta 1)
22 weeks ago
- Fix compilation errors on xrOS - Fix warnings in Xcode 15
Nuke 12.1
35 weeks ago
- Add `makeImageView` closure to `LazyImageView` to allow using custom views for rendering images - Add `onCompletion` closure to `LazyImage` and `FetchImage` - Fix an issue with `.videoAssetKey` value missing from `ImageContainer` - Fix an issue with `.gif` being encoded as `.jpeg` when `.storeEncodedImages` policy is used
iOS macOS watchOS tvOS
groue/GRDB.swift v6.22.0
A toolkit for SQLite databases, with a focus on application development
⭐️ 6,263
🕓 2 days ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
6.22.0
2 days ago
- **New**: [#1452](https://github.com/groue/GRDB.swift/pull/1452) by [@groue](https://github.com/groue): Bump SQLite custom builds to 3.44.0. Add support for FILTER and ORDER BY clauses in aggregate functions. - **New**: [#1460](https://github.com/groue/GRDB.swift/pull/1460) by [@groue](https://github.com/groue): Explicit change notifications help applications deal with undetected database changes. - **Documentation Update**: The documentations of [`ValueObservation`](https://swiftpackageindex.com/groue/grdb.swift/documentation/grdb/valueobservation), [`DatabaseRegionObservation`](https://swiftpackageindex.com/groue/grdb.swift/documentation/grdb/databaseregionobservation), and [`TransactionObserver`](https://swiftpackageindex.com/groue/grdb.swift/documentation/grdb/transactionobserver) have a new "Dealing with Undetected Changes" section that documents possible strategies for notifying applications of undetected database changes.
6.21.0
4 weeks ago
- **New**: [#1448](https://github.com/groue/GRDB.swift/pull/1448) by [@groue](https://github.com/groue): Add support for stable ordering and dump of views - **New**: [#1449](https://github.com/groue/GRDB.swift/pull/1449) by [@groue](https://github.com/groue): Backport temporary copies from GRDBSnapshotTesting
6.20.2
6 weeks ago
- **Fixed**: [#1442](https://github.com/groue/GRDB.swift/pull/1442) by [@groue](https://github.com/groue): Extend the macOS availability of JSON functions Inherited from 6.20.1: - **Fixed**: Removed a debug print - **New**: [#1439](https://github.com/groue/GRDB.swift/pull/1439) by [@groue](https://github.com/groue): Dump requests - **New**: `QueryInterfaceRequest.withStableOrder()` returns a request with well-defined order, suitable for tests.
6.20.1
6 weeks ago
- **Fixed**: Removed a debug print Inherited from 6.20.0: - **New**: [#1439](https://github.com/groue/GRDB.swift/pull/1439) by [@groue](https://github.com/groue): Dump requests - **New**: `QueryInterfaceRequest.withStableOrder()` returns a request with well-defined order, suitable for tests.
6.19.0
7 weeks ago
- **New**: [#1429](https://github.com/groue/GRDB.swift/pull/1429) by [@JhonnyBillM](https://github.com/JhonnyBillM): Allow `DatabaseValueConvertible` types to customize their database JSON format - **New**: [#1436](https://github.com/groue/GRDB.swift/pull/1436) by [@myyra](https://github.com/myyra) and [@groue](https://github.com/groue): JSON functions - **New**: `Database` has learned to create indexes on expressions, and specify specific collations on indexed columns, with the `create(index:on:expressions:options:condition:)` method. - **New**: Codable records can specify coding strategies for their `Data` properties. See [#1436](https://github.com/groue/GRDB.swift/pull/1436) for more information. - **Documentation Update**: A new [JSON Support](https://swiftpackageindex.com/groue/grdb.swift/documentation/grdb/json) article provides an overview of JSON handling. - **Documentation Update**: The [Recommended Practices for Designing Record Types](https://swiftpackageindex.com/groue/grdb.swift/documentation/grdb/recordrecommendedpractices) now recommend that record types with an auto-incremented id avoid conforming to the `Identifiable` protocol.
iOS macOS watchOS tvOS
kean/Pulse 4.0.5
Network Logger for Apple platforms
⭐️ 5,662
🕓 Yesterday
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Pulse 4.0.5
Yesterday
- Update documentation on custom views - Minor fixes and improvements in the UI
Pulse 4.0.4
3 weeks ago
- Fix [#217](https://github.com/kean/Pulse/issues/217): arithmetic overflow when the the number of deduplicated data links exceed the size limit > Note: the new precompiled frameworks were built using Xcode 15.0.1
Pulse 4.0.3
13 weeks ago
- Improve performance of recording network tasks significantly - Improve `NetworkLogger` performance - Fix an issue with requests from the previous app run being displayed as pending - Add a "Mock" badge for mocked requests when exporting the store using one of the text formats
Pulse 4.0.2
14 weeks ago
- Fix an issue with list not displaying older messages (iOS) - Update JSON color theme (watchOS) - The console now fully adopts your app's accent color (iOS, watchOS, macOS, tvOS) - Move "Store Info" button to Settings (iOS) - Network inspector will now show a "current" request by default and remember your selection (see `UserSettings.shared.isShowingCurrentRequest`)
Pulse 4.0.1
16 weeks ago
- Fix [#211](https://github.com/kean/Pulse/issues/211): crash when opening network details on iOS - Fix [#208](https://github.com/kean/Pulse/issues/208): searching removes the backgroundColor of decoding error highlighted text – [#210](https://github.com/kean/Pulse/pull/210) by @Ahattalla ## New Contributors * @Ahattalla made their first contribution in https://github.com/kean/Pulse/pull/210
Pulse 4.0
16 weeks ago
### Requirements - Set the minimum platform requirements to iOS 14.0, tvOS 15.0, watchOS 8.0, macOS 12.0. `ConsoleView` is available on iOS 15, but you can still integrate the framework in apps that support earlier iOS versions. - Increase the minimum supported Xcode version to Xcode 14.1 - Add Xcode 15 support - Add iOS 17, tvOS 17, watchOS 10, macOS 14 support - Remove APIs deprecated in Pulse 3.x ### Remote Logging - Add support for the new Pulse for Mac app coming to App Store this month. You can try it now by [joining](https://testflight.apple.com/join/1jcanE3q) the public beta. More information on the app will be available soon. - [Redesign](https://github-production-user-asset-6210df.s3.amazonaws.com/1567433/244578507-99e03a6a-c830-4174-add5-9b68d3c96c47.png) the remote settings screen making it easier to connect to Pulse for Mac. The new screen has improved error handling and shows instructions on configuring the app to use it. It now also remembers all recently connected devices, so if you use more than one Mac for development, it will remember both. - Add support for password-protected and encrypted connections to Pulse for Mac - Add a way to "Forget the Device" without disabling the remote logger - Fix synchronization issues in the remote logger - Add "Show on Mac" feature that allows you to quickly open a log details page selected in the iOS app on a Mac without even starting the remote logging (iOS only) - Add missing NSBonjourServices plist setting to the demo project that was preventing the demo app from connecting on a local network ### Features - [iOS] The "network" tab is now the first item in the menu and is selected by default. The selection is now also sticky. - [iOS] Add a way to display custom HTTP headers directly in the Console - [#196](https://github.com/kean/Pulse/pull/196) by @tahirmt - [iOS] Add quick filters by `host`, and `url` to the network task context menus - [iOS] When you import store from watchOS, it now shows an "Open Store" button directly in the Console - Add a public `UserSettings` class that allows you to programmatically change some of the console settings or pass them using launch arguments - [watchOS] Update the design for watchOS 10 - [watchOS] Fix [#201](https://github.com/kean/Pulse/issues/201) by removing the code that sets WCSession delegate from the framework. It's now up to the user to forward the required delegate calls to the framework: only two are needed. Please see the included demo projects for an example. - [watchOS] Fix [#200](https://github.com/kean/Pulse/issues/200) by disabling the Remote Logging toggle when running on a physical watchOS device. - [watchOS] Add a "Share Store" button to the Settings screen that uses the new native [ShareLink](https://developer.apple.com/documentation/SwiftUI/ShareLink) API to add more ways to share logs from your logs: email, messages, and more. - [watchOS] Add demo with paired iOS and watchOS apps - [macOS] Move some network filters to Pulse for Mac - [macOS] Move inspectors to the navigation bar on macOS - [macOS] Add "Now" mode
Pulse 4.0.0 (Beta 4)
18 weeks ago
- Add support for new mocking features in Pulse for Mac
Pulse 4.0.0 (Beta 3)
23 weeks ago
The standalone Pulse app is now available on iOS: https://testflight.apple.com/join/1jcanE3q. It's a document-based app that allows you to browse logs shared from other devices and open .pulse files anywhere in the system. ## watchOS * Update the design for watchOS 10 * Fix [#201](https://github.com/kean/Pulse/issues/201) by removing the code that sets WCSession delegate from the framework. It's now up to the user to forward the required delegate calls to the framework: only two are needed. Please see the included demo projects for an example. * Fix [#200](https://github.com/kean/Pulse/issues/200) by disabling the Remote Logging toggle when running on a physical watchOS device. * Add "Share Store" button to the Settings screen that uses the new native [ShareLink](https://developer.apple.com/documentation/SwiftUI/ShareLink) API to add more ways to share logs from your logs: email, messages, and more. * Add demo with paired iOS and watchOS apps
Pulse 4.0.0 (Beta 2)
24 weeks ago
- Add initial support for iOS 17, tvOS 17, watchOS 10, macOS 14 - Add “Show on Mac” feature that allows you to quickly open a log details page selected in the iOS app on a Mac without even starting the remote logging - Add a way to display custom HTTP headers directly in the console - [#196](https://github.com/kean/Pulse/pull/196), thanks to @tahirmt - Add public `UserSettings` class that allows you to programmatically change some of the console settings or pass them using launch arguments - [Redesign](https://github.com/kean/Pulse/assets/1567433/99e03a6a-c830-4174-add5-9b68d3c96c47) remote logging settings - Add support for password-protected and encrypted connections to Pulse for Mac - Improve error handling when connecting to remote logger. Show “No Auth” error message when .plist is missing the configuration. Show instructions for enabling Local Networking if it’s disabled. Show the error code for all other scenarios. - Remote logger will now remember all recently connected devices. If you have more than one Mac with Pulse for Mac, it will automatically connect depending on which one is available. It will prioritize the most recently connected device. - Fix synchronization issues in remote logger - Add a way to “Forget the Device” without disabling the remote logger - Add missing NSBonjourServices plist setting to the demo project that was preventing the demo app from connecting on a local network
Pulse 3.7.3
25 weeks ago
- Pulse can now be installed using CocoaPods. The name of the pods are `PulseCore` and `PulseUI`.
iOS macOS watchOS tvOS

Popular Packages

ggerganov/llama.cpp master-fff0e0e
Port of Facebook's LLaMA model in C/C++
⭐️ 45,093
🕓 18 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
b1575
21 hours ago
b1574
22 hours ago
b1573
Yesterday
b1571
Yesterday
b1570
2 days ago
b1569
2 days ago
b1567
2 days ago
b1566
2 days ago
b1564
3 days ago
b1563
3 days ago
iOS macOS watchOS tvOS
Alamofire/Alamofire 5.8.1
Elegant HTTP Networking in Swift
⭐️ 39,963
🕓 4 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
5.8.1
4 weeks ago
Released on 2023-10-26. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/88?closed=1). ### Updated - Internal: `Protected` to no longer be a `@propertyWrapper`. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3777](https://github.com/Alamofire/Alamofire/pull/3777). ### Fixed - `URLEncodedFormEncoder` encoding of `Encodable` values with optional properties using `encodeIfPresent`. - Fixed by [Jon Shier](https://github.com/jshier) in Pull Request [#3779](https://github.com/Alamofire/Alamofire/pull/3779). - Missing "Skip Install" setting for visionOS target. - Fixed by [Sai](https://github.com/Sai) in Pull Request [#3788](https://github.com/Alamofire/Alamofire/pull/3788).
5.8.0
12 weeks ago
Released on 2023-08-31. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/87?closed=1). #### Added - visionOS support. - Added by [Jon Shier](https://github.com/jshier) in Pull Requests [#3738](https://github.com/Alamofire/Alamofire/pull/3738) and [#3750](https://github.com/Alamofire/Alamofire/pull/3750). - Hooks for initial `HTTPURLResponse` values. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3762](https://github.com/Alamofire/Alamofire/pull/3738). - Android build support. - Added by [Hugo Gonzalez](https://github.com/hggz) in Pull Request [#3744](https://github.com/Alamofire/Alamofire/pull/3744). #### Updated - Async integration to obey automatic cancellation by default. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3757](https://github.com/Alamofire/Alamofire/pull/3757). - Platform `#if` checks. - Updated by [brenno](https://github.com/brennobemoura) in Pull Request [#3756](https://github.com/Alamofire/Alamofire/pull/3756). - Windows CI. - Updated by [Saleem Abdulrasool](https://github.com/compnerd) in Pull Request [#3763](https://github.com/Alamofire/Alamofire/pull/3763). - `URL` conversion tests for 2023 `URL` changes. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3734](https://github.com/Alamofire/Alamofire/pull/3734). - for-loop to `contains`. - Updated by [Mayank Kumar Gupta](https://github.com/Mayank-84) in Pull Request [#3726](https://github.com/Alamofire/Alamofire/pull/3726). #### Fixed - `MultipartFormData` stream to properly obey `bodyContentLength`. - Fixed by [Henrique Valcanaia](https://github.com/hvsw) in Pull Request [#3730](https://github.com/Alamofire/Alamofire/pull/3730). - Unnecessary call to empty init. - Fixed by [Shinolr](https://github.com/Shinolr) in Pull Request [#3742](https://github.com/Alamofire/Alamofire/pull/3742). - Documentation typos. - Fixed by [Jenna](https://github.com/ueunli) in Pull Request [#3733](https://github.com/Alamofire/Alamofire/pull/3733).
5.7.1
28 weeks ago
Released on 2023-05-10. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/86?closed=1). #### Updated - Deployment targets reverted to (macOS 10.12, iOS 10, tvOS 10, and watchOS 3)+ - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3720](https://github.com/Alamofire/Alamofire/pull/3720).
5.7.0
29 weeks ago
Released on 2023-05-09. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/84?closed=1). #### Added - Request body compression support. This is disabled by default. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3701](https://github.com/Alamofire/Alamofire/pull/3701). - `ArrayEncoding.custom` to `URLEncodedFormEncoder` and `URLEncoding`. - Added by [Mike Naquin](https://github.com/naquin) in Pull Request [#3699](https://github.com/Alamofire/Alamofire/pull/3699). - `KeyPathEncoding` to `URLEncodedFormEncoder`. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3689](https://github.com/Alamofire/Alamofire/pull/3689). - `NilEncoding` to `URLEncodedFormEncoder`. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3686](https://github.com/Alamofire/Alamofire/pull/3686). #### Updated - Alamofire now requires Swift 5.5+ and (macOS 10.13, iOS 11, tvOS 11, and watchOS 4)+. - Updated by [Jon Shier](https://github.com/jshier) in Pull Requests [#3670](https://github.com/Alamofire/Alamofire/pull/3670) and [#3717](https://github.com/Alamofire/Alamofire/pull/3717). - `flatMap` to `map` in `HTTPHeaders`. - Updated by [kati](https://github.com/kati-kms) in Pull Request [#3704](https://github.com/Alamofire/Alamofire/pull/3704). - Various CI integrations. - Updated by [Jon Shier](https://github.com/jshier) in Pull Requests [#3685](https://github.com/Alamofire/Alamofire/pull/3685) and [#3712](https://github.com/Alamofire/Alamofire/pull/3712). #### Fixed - Reachability API usage safety. - Fixed by [Jon Shier](https://github.com/jshier) in Pull Request [#3684](https://github.com/Alamofire/Alamofire/pull/3684). - Unused `bufferingPolicy` in `StreamOf`. - Fixed by [Duc](https://github.com/trungducc) in Pull Request [#3668](https://github.com/Alamofire/Alamofire/pull/3668). - Various documentation typos. - Fixed by [Timo Wälisch](https://github.com/TimoWaelischIdealo), [Tony](https://github.com/iamtony), and [uhooi](https://github.com/uhooi) in various PRs.
5.6.4
1 year ago
Released on 2022-11-21. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/84?closed=1). #### Fixed - Deprecated OS version support in Swift 5.7 SPM Package. - Fixed by [Guglielmo Faglioni](https://github.com/guidev) in Pull Request [#3665](https://github.com/Alamofire/Alamofire/pull/3665). ## New Contributors * @guidev made their first contribution in https://github.com/Alamofire/Alamofire/pull/3665 **Full Changelog**: https://github.com/Alamofire/Alamofire/compare/5.6.3...5.6.4
5.6.3
1 year ago
Released on 2022-11-20. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/83?closed=1). #### Updated - Swift package to 5.7, CI to Xcode 14.1. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3653](https://github.com/Alamofire/Alamofire/pull/3653). #### Fixed - Calls to deprecated cancellation handler function. - Fixed by [Sven Münnich](https://github.com/svenmuennich) in Pull Request [#3657](https://github.com/Alamofire/Alamofire/pull/3657). - Unnecessary protocol conformance on Combine publishers. - Fixed by [MoonkiKim(김문기)](https://github.com/tedKim5178) in Pull Request [#3650](https://github.com/Alamofire/Alamofire/pull/3650). - Don't attempt retry when `Request` has already been cancelled. - Fixed by [Jon Shier](https://github.com/jshier) in Pull Request [#3641](https://github.com/Alamofire/Alamofire/pull/3641). #### New Contributors * @tedKim5178 made their first contribution in https://github.com/Alamofire/Alamofire/pull/3650 * @svenmuennich made their first contribution in https://github.com/Alamofire/Alamofire/pull/3657 **Full Changelog**: https://github.com/Alamofire/Alamofire/compare/5.6.2...5.6.3
Safer Encoding
1 year ago
Released on 2022-07-17. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/82?closed=1). #### Added - Error when object provided to `JSONEcoding` contains values that can't be passed through `JSONSerialization`. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3624](https://github.com/Alamofire/Alamofire/pull/3624). #### Updated - CI support for all supported Xcode, macOS, and Linux versions. - Updated by [Jon Shier](https://github.com/jshier) in Pull Requests [#3607](https://github.com/Alamofire/Alamofire/pull/3607) and [#3622](https://github.com/Alamofire/Alamofire/pull/3622). - Support for various Xcode versions. - Updated by [Jon Shier](https://github.com/jshier) in Pull Requests [#3616](https://github.com/Alamofire/Alamofire/pull/3616) and [#3632](https://github.com/Alamofire/Alamofire/pull/3632). - `Cache-Control` header tests to not require hard-coded delays. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3601](https://github.com/Alamofire/Alamofire/pull/3601). #### Fixed - Swift version check for `SecTrustCopyCertificateChain`. - Fixed by [Jon Shier](https://github.com/jshier) in Pull Request [#3606](https://github.com/Alamofire/Alamofire/pull/3606). - Various documentation issues. - Fixed by [Jacob Lange](https://github.com/jacoblange-dev), [rain2540](https://github.com/rain2540), [bondxf](https://github.com/bondxf), [Ikko Ashimine](https://github.com/eltociear), and [Elon Park](https://github.com/ElonPark) in various Pull Requests.
Missing Cancellation Parameter
1 year ago
Released on 2022-04-17. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/81?closed=1). #### Fixed - Missing `automaticallyCancelling` parameter in `serializingDownloadedFileURL`. - Fixed by [Jon Shier](https://github.com/jshier) in Pull Request [#3597](https://github.com/Alamofire/Alamofire/pull/3597).
Concurrency Redux
1 year ago
Released on 2022-04-13. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/80?closed=1). #### Added - Support for `HTTPMethod.query` to support the [upcoming standard](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-safe-method-w-body-02). - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3553](https://github.com/Alamofire/Alamofire/pull/3553). - Compile-time Swift version check to enforce minimum supported Swift version. - Added by [Dave Verwer](https://github.com/daveverwer) in Pull Request [#3549](https://github.com/Alamofire/Alamofire/pull/3549). - GitHub Sponsors support. You can now sponsor Alamofire directly through GitHub. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3543](https://github.com/Alamofire/Alamofire/pull/3543). #### Updated - Swift version required to build [🔥 Experimental 🔥] Swift Concurrency support to 5.6.0 to avoid various Apple bugs with Xcode 13.2.0 and 13.2.1. Support now requires Xcode 13.3.1. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3590](https://github.com/Alamofire/Alamofire/pull/3590). - `DownloadRequest` to avoid producing resume data when not explicitly requested on cancellation. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3538](https://github.com/Alamofire/Alamofire/pull/3538). - Testing infrastructure to use XCTestPlans on Apple platforms. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3538](https://github.com/Alamofire/Alamofire/pull/3538). - GitHub Actions support for greater OS coverage, more SPM platforms, and Swift 5.6. - Updated by [Jon Shier](https://github.com/jshier) in Pull Requests [#3534](https://github.com/Alamofire/Alamofire/pull/3534), [#3545](https://github.com/Alamofire/Alamofire/pull/3545), [#3570](https://github.com/Alamofire/Alamofire/pull/3570), and [#3587](https://github.com/Alamofire/Alamofire/pull/3587). #### Fixed - Various Security framework deprecation warnings when deploying to newer OSes. - Fixed by [Jon Shier](https://github.com/jshier) in Pull Request [#3555](https://github.com/Alamofire/Alamofire/pull/3555). - Various documentation issues. - Fixed by [Jon Shier](https://github.com/jshier), [Emanuele Fumagalli](https://github.com/emanuelef), [Huang-Libo](https://github.com/Huang-Libo), and [rain2540](https://github.com/rain2540) in Pull Requests [#3548](https://github.com/Alamofire/Alamofire/pull/3548), [#3562](https://github.com/Alamofire/Alamofire/pull/3562), [#3573](https://github.com/Alamofire/Alamofire/pull/3573), [#3574](https://github.com/Alamofire/Alamofire/pull/3574), and [#3585](https://github.com/Alamofire/Alamofire/pull/3585).
Swift Concurrency
1 year ago
Alamofire 5.5 is the first release where we're labeling features we consider experimental. These features, while fully designed and well tested, rely on language or framework features which may change or require breaking bug fixes, and we'd rather not have to make a major release in that case. So [🔥 Experimental 🔥] features may require breaking changes in minor, rather than major, releases. This will be rare and compatibility should be preserved in most cases, but cannot be guaranteed. Released on 2021-12-13. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/79?closed=1). #### Added - [🔥 Experimental 🔥] support for Swift Concurrency, including `async`-`await` for requests and `StreamOf` for streaming values. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3463](https://github.com/Alamofire/Alamofire/pull/3463). - Generic static accessors for various protocols types for Swift 5.5. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3499](https://github.com/Alamofire/Alamofire/pull/3499). - `.indexInBrackets` options for array encoding in query parameters. - Added by [Tiago Lopes](https://github.com/TiagoMaiaL) in Pull Request [#3516](https://github.com/Alamofire/Alamofire/pull/3516). - `RequestAdapterState` and new protocol requirements for `RequestAdapter` to allow for additional state to be available. - Added by [Christian Noon](https://github.com/cnoon) in Pull Request [#3504](https://github.com/Alamofire/Alamofire/pull/3504). #### Updated - `Session` to more safely target provided custom `DispatchQueue`s for internal use. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3523](https://github.com/Alamofire/Alamofire/pull/3523). - `AFError` message regarding unacceptable `Content-Type`s to sort the types. - Updated by [Timur Yusipov](https://github.com/Usipov) in Pull Request [#3518](https://github.com/Alamofire/Alamofire/pull/3518). - Base Swift language version requirement to 5.3. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3495](https://github.com/Alamofire/Alamofire/pull/3495). - Sample app to show proper loading state for requests. - Updated by [Tiago Lopes](https://github.com/TiagoMaiaL) in Pull Request [#3514](https://github.com/Alamofire/Alamofire/pull/3514). #### Deprecated - `responseJSON` and associated methods, in preference to `responseDecodable`. - Deprecated by [Jon Shier](https://github.com/jshier) in Pull Request [#3502](https://github.com/Alamofire/Alamofire/pull/3502). #### Fixed - Use of `Protected` wrapper when accessing properties of the wrapped values to ensure proper thread-safety. - Fixed by [Jon Shier](https://github.com/jshier) in Pull Request [#3505](https://github.com/Alamofire/Alamofire/pull/3505). - Various documentation typos. - Fixed by [Christos Koninis](https://github.com/csknns), [Tiago Lopes](https://github.com/TiagoMaiaL), and [Eugene Berdnikov](https://github.com/evnik) in various Pull Requests.
iOS macOS watchOS tvOS
grpc/grpc v1.60.0
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
⭐️ 39,516
🕓 3 hours ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Release v1.60.0
11 hours ago
This is release 1.60.0 ([gjallarhorn](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. Core --- - Implemented dualstack IPv4 and IPv6 backend support, as per [draft gRFC A61](https://github.com/grpc/proposal/pull/356). xDS support currently guarded by `GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS` env var. - Dropped Bazel 5 support. ([#34813](https://github.com/grpc/grpc/pull/34813)) - [deps] Upgrade protobuf version to v25.0. ([#34513](https://github.com/grpc/grpc/pull/34513)) - [Security - Revocation] Crl Directory Watcher Implementation. ([#34749](https://github.com/grpc/grpc/pull/34749)) - [server] Cap size of pending request queue with RealRequestMatcher. ([#34782](https://github.com/grpc/grpc/pull/34782)) - [chttp2] Fix outgoing data stats. ([#34693](https://github.com/grpc/grpc/pull/34693)) - [EventEngine] Enable Posix EventEngine Listener on all builds. ([#34748](https://github.com/grpc/grpc/pull/34748)) - [EventEngine] Enable Windows EventEngine Listener on all builds. ([#34436](https://github.com/grpc/grpc/pull/34436)) - [chttp2] Alternative protection for too many streams in the system. ([#34697](https://github.com/grpc/grpc/pull/34697)) - [Proxy] Support for setting proxy for addresses. ([#34617](https://github.com/grpc/grpc/pull/34617)) - [client idleness] client channels go idle after 30 minutes by default. ([#34653](https://github.com/grpc/grpc/pull/34653)) - [chttp2] Add an experiment to separate liveness checks from ping timeouts. ([#34647](https://github.com/grpc/grpc/pull/34647)) - [chttp2] Tarpit invalid requests. ([#34641](https://github.com/grpc/grpc/pull/34641)) - [chttp2] Enforce settings acks. ([#34640](https://github.com/grpc/grpc/pull/34640)) - [chttp2] Limit work per read cycle. ([#34639](https://github.com/grpc/grpc/pull/34639)) - [chttp2] Limit request count before receiving settings ack. ([#34638](https://github.com/grpc/grpc/pull/34638)) - [chttp2] Randomly ping on RST_STREAM. ([#34637](https://github.com/grpc/grpc/pull/34637)) C++ --- - [xds] C++ XdsServerBuilder Remove src/... header dependency from public header. ([#34790](https://github.com/grpc/grpc/pull/34790)) - [reflection] Add v1 reflection. ([#34535](https://github.com/grpc/grpc/pull/34535)) C# --- - [csharp] Grpc.Tools documentation for sharing proto files between projects and nuget packages. ([#34521](https://github.com/grpc/grpc/pull/34521)) Ruby --- - [ruby] create debug symbol packages. ([#34632](https://github.com/grpc/grpc/pull/34632))
Release v1.59.3
1 week ago
This is release gRPC Core 1.59.3 (generative). For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes. Core --- - [Security - Revocation] Crl backport to 1.59. ([#34926](https://github.com/grpc/grpc/pull/34926))
Release v1.60.0-pre1
2 weeks ago
This is a prerelease of gRPC Core 1.60.0 (gjallarhorn). For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This prerelease contains refinements, improvements, and bug fixes.
Release v1.59.2
4 weeks ago
This is release 1.59.2 ([generative](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. Core --- - [chttp2] Rollup of fixes for CVE-2023-44487. ([#34763](https://github.com/grpc/grpc/pull/34763))
Release v1.58.2
4 weeks ago
This is release 1.58.2 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34553
Release v1.57.1
4 weeks ago
This is release 1.57.1 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34557
Release v1.56.3
4 weeks ago
This is release 1.56.3 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34558
Release v1.55.4
4 weeks ago
This is release 1.55.4 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug https://github.com/grpc/grpc/pull/34559
Release v1.59.1
7 weeks ago
This is release 1.59.1 ([generative](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34552
Release v1.59.0
8 weeks ago
This is release 1.59.0 ([generative](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. Core --- - [Release] Bump core version 202309251628. ([#34476](https://github.com/grpc/grpc/pull/34476)) - [xds ssa] Remove environment variable protection for stateful affinity. ([#34435](https://github.com/grpc/grpc/pull/34435)) - [windows DNS] Simplify c-ares Windows code. ([#33965](https://github.com/grpc/grpc/pull/33965)) - [c-ares] fix spin loop bug when c-ares gives up on a socket that still has data left in its read buffer. ([#34185](https://github.com/grpc/grpc/pull/34185)) - [Deps] Adding upb as a submodule. ([#34199](https://github.com/grpc/grpc/pull/34199)) - [EventEngine] Update Cancel contract on closure deletion timeline. ([#34167](https://github.com/grpc/grpc/pull/34167)) C# --- - [csharp codegen] Handle empty base_namespace option value to fix #34113. ([#34137](https://github.com/grpc/grpc/pull/34137)) Python --- - [Python 3.12] Support Python 3.12. ([#34398](https://github.com/grpc/grpc/pull/34398)) - [Python 3.12] Deprecate distutil. ([#34186](https://github.com/grpc/grpc/pull/34186)) Ruby --- - [ruby] Fix linking errors on x86-darwin. ([#34134](https://github.com/grpc/grpc/pull/34134)) - [Ruby] replace strdup with gpr_strdup. ([#34177](https://github.com/grpc/grpc/pull/34177)) - [ruby] drop ruby 2.6 support. ([#34198](https://github.com/grpc/grpc/pull/34198))
fastlane/fastlane watchbuild/0.1.4
🚀 The easiest way to automate building and releasing your iOS and Android apps
⭐️ 37,769
🕓 Yesterday
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
2.217.0 Improvements
2 weeks ago
* [spaceship] work around deliver issue #21105 (#21633) via Jerome Lacoste (@lacostej) * [action][slather] add support for slather's new --ymlfile option (#21613) via jarrodlombardo-EventBase (@jarrodlombardo-EventBase) * [action][notarize] printing log on error (#21609) via Csaba Szigeti (@szigetics) * [tests] fix test being potentially muddied by local ENV (#21586) via Olivier Halligon (@AliSoftware) * [match] remove redundant fetching of profile devices and certificates (#21409) via Vitalii Budnik (@nekrich) * [match] hide sensitive information in match output (#21603) via Duncan MacDonald (@oct0f1sh) * [supple] fix issue with releases containing retained versions (#20997) (#20998) via Mariano Miani (@mmiani) * [action][git_branch] add `FL_GIT_BRANCH_DONT_USE_ENV_VARS` env var to `git_branch` (#21597) via Oguz Kocer (@oguzkocer) * [tests] Make error message expectation more flexible in `runner_spec.rb` to support Ruby 2.6 error message format (#21591) via Olivier Halligon (@AliSoftware) * [docs] fix typo `practies` → `practices` based on feedback from fastlane/docs (#21589) via Roger Oba (@rogerluan) * [fastlane] add support for keyword arguments for lanes in Ruby 3 (#21587) via Olivier Halligon (@AliSoftware) * [tests] update `fakefs` to fix test failures on Ruby 3.2.2 (#21588) via Olivier Halligon (@AliSoftware) * [deliver] Add Watch Ultra screen size (#21106) via Aoi Takahashi (@xiii111) * [docs] update a bit of the documentation of install_on_device.rb (#21196) via ls-1N (@ls-1N) * [precheck] print the HTTP status as the failure reason when it's not 200 (#21051) via Roger Oba (@rogerluan) * [supply] parallel uploads for meta per language (#21474) via Cristian Caruceru (@ccaruceru) * [action][nexus_upload] Mark Nexus password as a sensitive field (#21564) via Liam Jones (@liamjones) * [trainer] check specifically for file url in failure_message, fixing crash in Xcode 15 when running in Apple Silicon (#21493) via Jason Hagglund (@TheMetalCode) * [gym] fix error message for catalyst_platform option (#21332) via Sebastian Staudt (@koraktor) * [deliver] show file type correctly in user_error (#21403) via Aru Hyunseung Jeon (@Dogdriip) * [gym] fix multiplatform iOS builds (#21319) via Zach Waugh (@zachwaugh) * [match] make git_private_key path absolute (#21360) via Marko Samec (@msamec) * [snapshot] Add Missing Older iPhone & iPad models to Generated Snapshot Reports (#21557) via Kyle Howells (@kylehowells) * [deliver] Capturing NoMethodError exception when fetching live app info (#21553) via Ignacio Calderon (@kronenthaler) * [snapshot] support Strict Concurrency for SnapshotHelper (#21400) via Kohki Miki (@giginet) * [match] added selection of certificate and p12 key by certificate id (#21428) via Ivan Sorokoletov (@slacklab) * [spaceship] allow to specify fetched fields (#21528) via Vitalii Budnik (@nekrich) * [snapshot] add Support for New Apple Devices in Snapshot Generator (#21554) via Sandeep Joshi (@isandeepj) * [deliver] fetch live app info if no edit info is present, fixing scenario of having both macOS and iOS apps present (#21472) via Lorenzo Mattei (@loremattei)
2.216.0 Fix for match GitLab storage
10 weeks ago
* [match] fixes missing job-token error in GitLab storage mode (#21520) via Darby Frey (@darbyfrey)
2.215.1 Workaround for Google Play API instability
10 weeks ago
* [supply] add new SUPPLY_UPLOAD_MAX_RETRIES env var to attempt to solve failed Google API calls (#21518) via Josh Holtz (@joshdholtz)
2.215.0 Improvements
10 weeks ago
* [spaceship] add request retry with backoff when encountring 429 errors (#21511) via Stefan Natchev (@snatchev) * [supply] introduce a new synchronization logic for screenshots (#21498) via Olivier Halligon (@AliSoftware) * [deliver] validate the status of app version to be ready_for_review before submitting the app (#20515) via 醉 (@404pilot) * [match] Added s3_skip_encryption parameter (#21018) via Morten Bøgh (@mbogh) * [docs] add minor branding guidelines to `CONTRIBUTING.md` (#21495) via Roger Oba (@rogerluan) * [match] prevent directory download from s3 (#20975) via Mark Homoki (@markhomoki) * [xcodes] fix issue where `xcodes` action wouldn't accept beta versions of Xcode (#21434) via apps4everyone (@apps4everyone) * [spaceship] explicit beta group access to all builds at creation (#21478) via Vincent Isambart (@vincentisambart) * [docs] update pull request template to ask contributors to write unit tests (#21427) via Roger Oba (@rogerluan) * [action] deprecate the ensure_xcode_version action (#21448) via Iulian Onofrei (@revolter) * [tests] stop generating rspec temp file in current directory (#21466) via Roger Oba (@rogerluan) * [ci] fix CI by replacing deprecated Xcode versions, and add Xcode 14, Xcode 15, and Ruby 3.1 to test envs (#21465) via Roger Oba (@rogerluan) * [deliver][frameit] add iPhone 14 Pro / 6.1" display type (#21393) via Stefan Natchev (@snatchev) * [spaceship] add missing `AppStoreState` cases (#21312) via Roger Oba (@rogerluan) * [fastlane_core] fix WWDR certificates import flow (#21442) via Paul Taykalo (@PaulTaykalo) * [docs] fix tool name formatting (for `supply`) to be lowercase to pass fastlane docs unit tests (#21426) via Roger Oba (@rogerluan)
2.214.0 Improvements
19 weeks ago
* [spaceship] fix olympus session request error after skipping 2FA Upgrade (#21317) via AbbyM (@AbbyM) * [spaceship] add update method to ConnectAPI::User (#20956) via Vitalii Budnik (@nekrich) * [supply][action] add `download_apk_from_google_play` action (and corresponding `supply` methods) (#21315) via Olivier Halligon (@AliSoftware) * [docs] fix sync_code_signing.md (#21202) via Yuki Sakai (@VeyronSakai) * [fastlane] fix fastlane action template warnings reported by Rubocop (#21310) via Bartosz Kosiorek (@BartoszKosiorek-TomTom) * [docs][match] fix typos, improve wording, incorporate improvements to match documentation examples (#21302) via Roger Oba (@rogerluan) * [match] fixes Gitlab Secure Files API limit (#21361) via Darby Frey (@darbyfrey) * [match] adding access token prompt for GitLab Secure Files Match (#21279) via Darby Frey (@darbyfrey) * [deliver] update upload_price_tier (#21282) via lukethoene (@lukethoene)
2.213.0 Improvements
26 weeks ago
* [core][match] remove obsolete and expired WWDR G1 certificate (#21271) via Frederik Seiffert (@triplef) * [action][ensure_git_status_clean] new ignore_files option for explicitly ignoring files (#21283) via Josh Holtz (@joshdholtz) * [scan] run simulator destination with arch=x86_64 for Xcode 14.3 and up if on Intel (#21284) via Josh Holtz (@joshdholtz) * [match] adding support for self-managed GitLab instances (#21274) via Darby Frey (@darbyfrey) * [pilot] fix increase limit for build query (#21212) via Eric Lindvall (@eric) * [dependency] relax `multipart_post` dependency version requirement (#20870) via Edouard Brière (@edouard)
2.212.2 Improvements and fix for some App Store Connect APIs
32 weeks ago
* [ci] Only run all mac jobs on master and version bump branches (#21088) via Josh Holtz (@joshdholtz) * [spaceship] remove deprecated attributes from apps requests (#21187) via Kohki Miki (@giginet) * [snapshot] fix resolve deadlock in LatestOsVersion#version_for_os (#20329) via stbix (@stbix) * [deliver] Implements `verify` with `altool` for Xcode 14 validation (#20738) via Pol Piella Abadia (@polpielladev) * [action][ensure_git_status_clean] fix incorrect "ignored" param handling (#20976) via Iulian Onofrei (@revolter) * [spaceship] increase limit for build query in distribute to handle multiple platforms (#21087) via Eric Lindvall (@eric)
2.212.1 Fix for Apple ID lockout and Access Forbidden with new hashcash header
39 weeks ago
* [spaceship] Implements new hashcash header in auth flow (#21073) via Josh Holtz (@joshdholtz) * [spaceship] Fix Apple ID 2FA with SMS (#21072) via Josh Holtz (@joshdholtz)
2.212.0 Improvements
40 weeks ago
* [fastlane_core] New FASTLANE_WWDR_USE_HTTP1_AND_RETRIES env (feature flag) to use http 1.1 and retries when installing WWDC certs to fix some CI failures (#21044) via Josh Holtz (@joshdholtz) * [CI] Update deprecated CircleCI images (#20932) via Aaron Brager (@getaaron) * [spaceship] Add language name in stack trace when localization operations fail (#20581) via Cristian Caruceru (@ccaruceru) * [gym] Add show build timing summary option (#20896) via Pol Piella (@polpielladev) * [deliver] add iPad Pro 6th generation (#20993) via Kohki Miki (@giginet) * [action][import_from_git] fix error when cache_path is not specified (#20958) via Vitalii Budnik (@nekrich) * [spaceship] add methods to rename and disable/enable devices (#20928) via Vitalii Budnik (@nekrich) * [spaceship] Remove unused params in ConnectAPI::Device (#20931) via Aaron Brager (@getaaron) * [action][xcodes] add error handling for `xcodes` when running the `installed` cmd (#20867) via Gio Lodi (@mokagio) * [scan] add option to specify result bundle path (#20742) via Benedek Kozma (@Cyberbeni) * [deliver] fix bug when canceling a rejected submission (#20754) via merchang (@merchang) * [fastlane_core] prevent negative argument error for message formatting (#20857) via Akseli Lukkarila (@akselilukkarila) * [spaceship] support fetching `build_bundle_file_sizes` for a `BuildBundle` (#20860) via Liam Nichols (@liamnichols) * [action][update_project_provisioning] redownload AppleIncRootCertificate.cer if file size is 0. (#20812) via Jerry.Qiushi (@JerryZQS) * [docs] add link to Spaceship Debugging docs from Tooling and Debugging docs (#20849) via Rob Mathers (@robmathers) * [screengrab] fix formatting of the `screengrab` / `capture_android_screenshots` docs (#20597) via Olivier Halligon (@AliSoftware) * [action][pod lib lint] fix grammar in success message (#20627) via Tejas Sharma (@tejassharma96) * [match] developer id installer profile for the accessible environments (#20782) via Paul Taykalo (@PaulTaykalo)
2.211.0 Improvements
1 year ago
* [release] fix for more forgiving changelog generation for release (#20851) via Josh Holtz (@joshdholtz) * [match][sigh] add support for Apple Silicon Macs in iOS/iPadOS provisioning profiles (#20676) via Philipp Resch (@PinkidG) * [snapshot] fix compiler error on `SnapshotHelper.swift` (#20689) via amcalgates (@amcalgates) * [match] fix match nuke not deleting decrypted files (#20776) via Iulian Onofrei (@revolter) * [docs] update path to iTMSTransporter for Fastlane.swift (#20795) via Rafał Wyszomirski (@rafauke) * [action][update_code_signing_settings] add `sdk` key to update_code_signing_settings (#20655) via gabimoncha (@gabimoncha) * [pilot][deliver] fix private method clone' called for #<Hash> on uploading app (#20662) via freddi(Yuki Aki) (@freddi-kit) * [spaceship] implement resolution center API in Spaceship::ConnectAPI (#20726) via Hiroto Nakamura (@Hiroto-N) * [action] add `xcodes` action, deprecating `xcversion` and `xcode-install` (#20672) via Roger Oba (@rogerluan) * [frameit] fix device detection that would match less specific devices first (#20642) via Guglielmo Faglioni (@guidev) * [deliver] add support to detecting and uploading 6.7" (iPhone 14 Pro Max) screenshots (#20694) via Evgeny Cherpak (@cherpake)
nlohmann/json v3.11.3
JSON for Modern C++
⭐️ 37,699
🕓 9 hours ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
JSON for Modern C++ version 3.11.3
10 hours ago
Release date: 2023-11-28 SHA-256: 9bea4c8066ef4a1c206b2be5a36302f8926f7fdc6087af5d20b417d0cf103ea6 (json.hpp), a22461d13119ac5c78f205d3df1db13403e58ce1bb1794edc9313677313f4a9d (include.zip), d6c65aca6b1ed68e7a182f4757257b107ae403032760ed6ef121c9d55e81757d (json.tar.xz) ### Summary This release fixes some bugs found in the [3.11.2](https://github.com/nlohmann/json/releases/tag/v3.11.2) release. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](https://paypal.me/nlohmann). ### :sparkles: New Features - Allow [**custom base class**](https://json.nlohmann.me/api/basic_json/json_base_class_t/) as node customization point. This adds an additional template parameter which allows to set a custom base class for `nlohmann::json`. This class serves as an extension point and allows to add functionality to json node. Examples for such functionality might be metadata or additional member functions (e.g., visitors) or other application specific code. By default the parameter is set to `void` and an empty base class is used. In this case the library behaves as it already did. #3110 - Add more specific parse error message when attempting to **parse empty input**. #4037 #4180 - Add serialization-only user defined type [**macros**](https://json.nlohmann.me/features/macros/) (`NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE` and `NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE`). #3816 - Add **Bazel** build support. If you are using [Bazel](https://bazel.build/) you can simply reference this repository using `http_archive` or `git_repository` and depend on `@nlohmann_json//:json`. #3709 - Support Apple's Swift Package Manager. #4010 ### :bug: Bug Fixes - Adjust CMake files to accept `NEW` **CMake policies** up to CMake 3.14. This fixes a nasty deprecation warning that "Compatibility with CMake < 3.5 will be removed from a future version of CMake". #4076 #4112 - Fix CMake header path in install with custom `CMAKE_INSTALL_INCLUDEDIR`. #4194 - Add missing `<numeric>` header include. #3717 #3718 #3719 - Replace uses of `INT_MIN`/`INT_MAX`, etc. with `std::numeric_limits` and consistently use `std`-namespaced integer types to make library work with never GCC versions. #3722 #3723 - Add missing files (`json_fwd.hpp` and Bazel build files) to release artifact `include.zip`. #3727 #3728 - Fix 'declaration hides global declaration' warning. #3751 - Fix natvis XML. #3858 #3863 - Fix warning about moved from object. #3805 #3889 - Remove a magic number to fix a warning. #3837 #3888 - Fix debug pretty-printer by checking if match is valid before accessing group. #3919 #3920 - Fix custom allocators by defining missing `rebind` type. #3895 #3927 - Prevent memory leak when exception is thrown in `adl_serializer::to_json` #3881 #3901 - Fix Clang-Tidy warnings. #4047 - Fix init-list construction when `size_type` is not `int`. #4140 - Fix deprecation warning "identifier `_json` preceded by whitespace in a literal operator declaration". #4129 #4161 - Fix compile error with `_HAS_STATIC_RTTI=0`. #4046 - Fix char_traits deprecation warning "`char_traits<unsigned char>` is deprecated: `char_traits<T>` for `T` not equal to `char`, `wchar_t`, `char8_t`, `char16_t` or `char32_t` is non-standard". #4163 #4179 ### :hammer: Further Changes #### CI - Use official [Clang](https://github.com/silkeh/docker-clang)/[GCC](https://hub.docker.com/_/gcc) Docker containers in the CI. #3703 - Add workflow to check if the source files area amalgamated. #3693 - Fix CI build. #3724 #3862 #3978 #3985 #4025 #4083 #4160 #4196 #4215 - Use Clang 15. #3822 #3876 - Add [CIFuzz](https://google.github.io/oss-fuzz/getting-started/continuous-integration/) CI GitHub action. #3845 - Fix MinGW script and CI. #3892 #4175 - Removed lgtm and DroneCI and added [Cirrus CI](https://cirrus-ci.org). #3890 #3906 #3935 #3937 - Set minimal permissions to Github Workflows. #3971 #3972 - Refactor amalgamation workflow to avoid dangerous use of pull_request_target. #3945 #3969 #### Documentation - Add [**migration guide**](https://json.nlohmann.me/integration/migration_guide/) to replace deprecated library functions. #3702 #3887 - Add dark mode toggle to documentation #3726 - Fix typos in documentation. #3748 #3767 #3902 #3932 #3951 #4109 #4126 #4143 #4149 #4159 #4173 - Update Codacy link. #3740 - Bump documentation tool versions. #3781 #3872 #3891 #3934 - Add vcpkg port version badge. #3988 - Add to `CONTRIBUTING.md` that `make pretty` is required for test updates. #4045 - Use template get instead of get in examples. #3827 #4038 #4039 - Capture exceptions by `const&` in docs. #4099 - Fix source highlighting in user defined type macros docs. #4169 #### Tests - Use `std::ranges::equals` for range comparisons in test case. #3927 #3950 - Add more algorithm tests to `unit-algorithm.cpp`. #4044 ### :fire: Deprecated functions This release does not deprecate any function. See the [**migration guide**](https://json.nlohmann.me/integration/migration_guide/) for help adjusting your code for future versions. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - The function `iterator_wrapper` is deprecated. Please use the member function [`items()`](https://json.nlohmann.me/api/basic_json/items/) instead. - Functions `friend std::istream& operator<<(basic_json&, std::istream&)` and `friend std::ostream& operator>>(const basic_json&, std::ostream&)` are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://json.nlohmann.me/api/operator_gtgt/) and [`friend operator<<(std::ostream&, const basic_json&)`](https://json.nlohmann.me/api/operator_ltlt/) instead. - Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. - The implicit conversion from JSON Pointers to string ([`json_pointer::operator string_t`](https://json.nlohmann.me/api/json_pointer/operator_string_t)) is deprecated. Use [`json_pointer::to_string`](https://json.nlohmann.me/api/json_pointer/to_string/) instead. - Comparing JSON Pointers with strings via [`operator==`](https://json.nlohmann.me/api/json_pointer/operator_eq/) and [`operator!=`](https://json.nlohmann.me/api/json_pointer/operator_ne/) have been deprecated. To compare a [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) `p` with a string `s`, convert `s` to a `json_pointer` first and use [`json_pointer::operator==`](https://json.nlohmann.me/api/json_pointer/operator_eq/) or [`json_pointer::operator!=`](https://json.nlohmann.me/api/json_pointer/operator_ne/). #3684 All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.11.2
1 year ago
Release date: 2022-08-12 SHA-256: 665fa14b8af3837966949e8eb0052d583e2ac105d3438baba9951785512cf921 (json.hpp), e5c7a9f49a16814be27e4ed0ee900ecd0092bfb7dbfca65b5a421b774dccaaed (include.zip), 8c4b26bf4b422252e13f332bc5e388ec0ab5c3443d24399acb675e68278d341f (json.tar.xz) ### Summary This release fixes some bugs found in the [3.11.1](https://github.com/nlohmann/json/releases/tag/v3.11.1) release. Furthermore, the []((https://json.nlohmann.me/features/namespace/)) of the namespace library has been re-structured. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](https://paypal.me/nlohmann). ### :bug: Bug Fixes - Fix the [`value`](https://json.nlohmann.me/api/basic_json/value/) function which was broken for strings, size types, and `nullptr` in release 3.11.0. #3652 #3655 #3663 - Fix the `json_fwd.hpp` header to be self-contained and add it to the single-header release. #3656 #3679 #3687 - Fix regression that broke using [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) as key in associative containers. #3680 #3685 - Add missing constraint to deprecated JSON Pointer overloads of [`contains`](https://json.nlohmann.me/api/basic_json/contains/) and [`at`](https://json.nlohmann.me/api/basic_json/at/). #3658 #3681 - Fix comparison between [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) and strings with `==` and `!=`. These comparisons worked in 3.10.5, but were broken in 3.11.0 and 3.11.1. #3654 #3664 - Fix `to_json` conversion of `std::vector<bool>::reference` and `std::vector<bool>::const_reference` for STLs where these are the same as `basic_json::boolean_t&` and `basic_json::boolean_t`, respectively. #3677 #3678 ### :zap: Improvements - Restructure inline namespace and allow version component to be disabled. See [documentation](https://json.nlohmann.me/features/namespace/). #3683 #3696 #3697 #3698 - Avoid heap allocations in [BJData](https://json.nlohmann.me/features/binary_formats/bjdata/) parser. #3637 ### :hammer: Further Changes #### Documentation - Publish documentation on every push to `develop` branch. #3660 #3673 - Add missing examples for the [public API](https://json.nlohmann.me/api/basic_json/). #3672 #3686 - Fix typo in [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) documentation. #3692 #### Community - Add a badge for the [Discord chat](https://discord.gg/6mrGXKvX7y) to the README file. The goal of that additional communication channel beyond [the existing ones](https://github.com/nlohmann/json#support) is to quickly coordinate between the contributors. #3651 - Complete contributor list. #3662 #3670 #### CI - Remove the `macos-10.15` image from the CI as it is removed by GitHub Actions. #3612 #3615 #3626 - Remove hardcoded paths in Ubuntu workflow. #3626 - Only trigger AppVeyor builds if relevant files have been changed. #3626 - Fix CodeQL warning. #3626 - Harmonize naming of GitHub Actions jobs. #3661 - Add labeler action to automatically add PR labels based on the changed files. #3671 #3674 #3675 - Lint API documentation in the CI. #3672 - Add local [LGTM](http://lgtm.com) configuration and suppress warnings on third-party scripts. #3643 ### :fire: Deprecated functions - This release deprecates comparing JSON Pointers with strings via [`operator==`](https://json.nlohmann.me/api/json_pointer/operator_eq/) and [`operator!=`](https://json.nlohmann.me/api/json_pointer/operator_ne/). To compare a [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) `p` with a string `s`, convert `s` to a `json_pointer` first and use [`json_pointer::operator==`](https://json.nlohmann.me/api/json_pointer/operator_eq/) or [`json_pointer::operator!=`](https://json.nlohmann.me/api/json_pointer/operator_ne/). #3684 The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - The function `iterator_wrapper` is deprecated. Please use the member function [`items()`](https://json.nlohmann.me/api/basic_json/items/) instead. - Functions `friend std::istream& operator<<(basic_json&, std::istream&)` and `friend std::ostream& operator>>(const basic_json&, std::ostream&)` are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://json.nlohmann.me/api/operator_gtgt/) and [`friend operator<<(std::ostream&, const basic_json&)`](https://json.nlohmann.me/api/operator_ltlt/) instead. - Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. - The implicit conversion from JSON Pointers to string ([`json_pointer::operator string_t`](https://json.nlohmann.me/api/json_pointer/operator_string_t)) is deprecated. Use [`json_pointer::to_string`](https://json.nlohmann.me/api/json_pointer/to_string/) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.11.1
1 year ago
Release date: 2022-08-01 SHA-256: 9279dc616aac67efce68967f118051b50236612b90572e059783d368bd78687e (json.hpp), 9c15ca7806f863872452bfbc85fee6d1c9868117e3ea5e00a204ae961a2e1ae7 (include.zip), e6dd39f8f2da9cab11de2212acdd40b1cc1aafbe09da8c92933b911d19da3302 (json.tar.xz) ### Known issues - #3652 Regression: call to member function 'value' is ambiguous - #3654 Regression: no match for 'operator!=' comparing json_pointer and const char */string_t - #3655 Regression: .value<size_t> is compilation error All issues are fixed in the `develop` branch and will be part of the [3.11.2](https://github.com/nlohmann/json/releases/tag/v3.11.2) release. ### Summary [Version 3.11.0](https://github.com/nlohmann/json/releases/tag/v3.11.0) moved the user-defined string literals (UDL) into namespace `nlohmann::literals::json_literals` (see [documentation](https://json.nlohmann.me/api/macros/json_use_global_udls/)). Unfortunately, this namespace was not imported to the global namespace by default which broke code. This release fixes this bug. All changes are backward-compatible. See [release notes of version 3.11.0](https://github.com/nlohmann/json/releases/tag/v3.11.0) for more information on other features. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](https://paypal.me/nlohmann). ### :bug: Bug fixes - Set default value of [`JSON_USE_GLOBAL_UDLS`](https://json.nlohmann.me/api/macros/json_use_global_udls/) and the CMake options `JSON_GlobalUDLs` to `1` to import the user-defined string literals from the `nlohmann::literals::json_literals` namespace into the global namespace by default. #3644 #3645 #3646
JSON for Modern C++ version 3.11.0
1 year ago
* * * **:bug: Unfortunately, this release introduced a bug that breaks existing usages of the user-defined string literals (UDL). This is fixed in [version 3.11.1](https://github.com/nlohmann/json/releases/tag/v3.11.1).** * * * Release date: 2022-08-01 SHA-256: eb73896e9ce706ae6a62ce697dc8aca214840f70d8281779a6ea0cabe3afab3f (json.hpp), b4789050cacd110faf8b100cee82af19ad0b4d3249625f6582a60eeeb80c84a7 (include.zip), 5c8f7a4d9e9c0d565e71b6e5b0b3a12f784ffbf142e1ddc7ba86002cefb4c6ee (json.tar.xz) ### Summary Version 3.11.0 is one of the biggest releases (in terms of closed issues and merged pull requests) ever. It brings: - **String view** support for all functions working on object keys (e.g., [`at`](https://json.nlohmann.me/api/basic_json/at/) or [`operator[]`](https://json.nlohmann.me/api/basic_json/operator%5B%5D/)), avoiding unnecessary allocations. - **BJData** as the fifth supported binary format besides BSON, CBOR, MessagePack, and UBJSON. - **Better C++20 support** to make the library integrate more smoothly with newer codebases. - Better support for avoiding problems when **multiple versions** of the library are used in the same project. - Even better and more extensive **documentation** and **examples**. - **More tests** for edge cases like 32-bit support, C++20 features, using the library with ICPC, or after including `<windows.h>`. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](https://paypal.me/nlohmann). ### :sparkles: New Features - Allow to **use `std::string_view` as object keys** in [`at`](https://json.nlohmann.me/api/basic_json/at/), [`operator[]`](https://json.nlohmann.me/api/basic_json/operator%5B%5D/), [`value`](https://json.nlohmann.me/api/basic_json/value/), [`erase`](https://json.nlohmann.me/api/basic_json/erase/), [`find`](https://json.nlohmann.me/api/basic_json/find/), [`contains`](https://json.nlohmann.me/api/basic_json/contains/), and [`count`](https://json.nlohmann.me/api/basic_json/count/) to avoid unnecessary allocations. #3423, #1529, #3558, #3564 - Add support to read and write the UBJSON-derived **[Binary JData (BJData)](https://github.com/NeuroJSON/bjdata/blob/Draft_2/Binary_JData_Specification.md) format** (see [documentation](https://json.nlohmann.me/features/binary_formats/bjdata/)). #3336, #3461, #3463, #3475, #3479, #3493, #3491, #3492, #3490, #3500, #3502, #3503, #3505, #3513, #3514, #3519, #3523, #3541, #3543 ### :bug: Bug fixes - Allow creation of [`ordered_json`](https://json.nlohmann.me/api/ordered_json/) objects from initializer lists. #3342, #3343, #3370 - Fix failing tests when compiling with C++20 and add support for [`operator<=>`](https://json.nlohmann.me/api/basic_json/operator_spaceship/). #3207, #3446, #3472 - Fix comparison-related compilation problems in C++20 on GCC 12. #3138, #3379 - Make iterator satisfy `std::incrementable`. #3331, #3332 - Exclude `std::any` from implicit conversion. #3428, #3437 - Fix constraints on `from_json()` for strings. #3171, #3267, #3312, #3384, #3427, #3312, #3620 - Make iterators usable with `<ranges>` and range-v3. #3130, #3446 - Fix comparison of NaN values with `json` to behave like `float`. #3409, #3446 - Add [`operator<<(json_pointer)`](https://json.nlohmann.me/api/operator_ltlt/) to fix a regression after the 3.10.0 release. #3600, #3601 - Fix JSON Patch to not create missing parent objects. #3134, #3199, #3628 - Re-add `value_type` detection to distinguish string types (was broken in releases 3.10.4, and 3.10.5). #3204, #3333, #3604, #3602, #3629 - Fix latest build error in MSVC platform (was broken during development of 3.11.0). #3630 ### :zap: Improvements - Allow default values for [`NLOHMANN_DEFINE_TYPE_INTRUSIVE`](https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/) and [`NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE`](https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/). #2819, #3143 - Avoid clash with Arduino defines. #3338 - Improve [`meta`](https://json.nlohmann.me/api/basic_json/meta/) output for MSVC. #3417 - Check and warn if a different version of the library is already included (see [`JSON_SKIP_LIBRARY_VERSION_CHECK`](https://json.nlohmann.me/api/macros/json_skip_library_version_check/)). #3418 - Re-template [`json_pointer`](https://json.nlohmann.me/api/json_pointer/) on string type. #3415 - Allow to create booleans from `std::vector<bool>::reference`. #3533, #3534 - Allow to use array types where iterators are pointers. #3544 - Improve performance of writing binary formats to byte vectors. #3569 - Add [`patch_inplace`](https://json.nlohmann.me/api/basic_json/patch_inplace/) function to apply patches without copying. #3581, #3596 - Use [`swap`](https://json.nlohmann.me/api/basic_json/swap/) by ADL to allow swapping with non-`std` containers and improve error messages. #3609 - Add versioned, ABI-tagged inline namespace (see [`NLOHMANN_JSON_NAMESPACE`](https://json.nlohmann.me/api/macros/nlohmann_json_namespace/)) to avoid ODR errors when linking different versions of the library. #1539, #3360, #3588, #3590 - Move UDLs out of the global namespace (see [`JSON_USE_GLOBAL_UDLS`](https://json.nlohmann.me/api/macros/json_use_global_udls/)) to avoid name clashes. #1682, #3605 #### Warnings - Fix ICPC warning 1098. #3632, #3634 - Fix a `-Wpragmas` warning in GCC <11. #3550 ### :hammer: Further Changes - Fix `_MSC_VER` version to check for `std::filesystem`. #3240 - Remove `<sstream>` dependency. #3239, #3244 - Overwork bug template to systematically request information. #3348 - Add script to [test local version](https://github.com/nlohmann/json/tree/develop/tools/serve_header) in Compiler Explorer. #3456 - Change the default value of the CMake parameter `JSON_MultipleHeader` to `ON` to always use the multi-header version unless specified otherwise. #3532 - Add option to disable default enum conversions (see [`JSON_DISABLE_ENUM_SERIALIZATION`](https://json.nlohmann.me/api/macros/json_disable_enum_serialization/)). #3536 - Add maintainer targets to create source archive `json.tar.xz` which can be used in [`FetchContent`](https://json.nlohmann.me/integration/cmake/#fetchcontent). #3289, #3255 - Fix `CITATION.cff`. #3320 - Use [The Pitchfork Layout (PFL)](https://api.csswg.org/bikeshed/?force=1&url=https://raw.githubusercontent.com/vector-of-bool/pitchfork/develop/data/spec.bs). #3462 - Update Cpplint. #3454 - More intermediate folders from Visual Studio Code are added to `.gitignore`. #3572 - Add badge for https://repology.org/project/nlohmann-json/versions. #3586 - Use [REUSE licensing framework](http://reuse.software). #3546 , #3633, #3635 - Install `.pc` and `.cmake` files to `share` directory. #3619 #### CI - Add support for Visual Studio 2022., #3295 - Adjust GitHub Actions CI wrt. `windows-latest` image. #3368 - Remove deprecated `windows-2016` image. #3416 - Speed up AppVeyor CI. #3422 - Update CI image to check with ICPC, GCC 11 and Clang 14. #3420 - Add build step for ICPC to CI. #3465 - Add more Xcode versions (13.3.1, 13.3, 13.2.1, 13.2, and 13.1) to the CI. #3485 - Fix "JSON_MultipleHeaders" option spelling in CI. #3555 - Increase timeout for Unicode tests. #3579, #3580, #3614 - Abort CI runs on newer commits on the same branch. #3610 - Fix MinGW CI failures. #3618 - Disable exceptions on ICPC (for the `disabled_exceptions` unit test). #3621 #### Unit tests - Improve unit tests. #3380, #3393, #3365, #3405, #3377, #3421, #3422 - Disable regression test on GCC <8.4. #3451 - Add tests for 32 bit. #3524, #3529, #3530, #3532 - Add error message if test suite cannot be found. #3584, #3585 - Add unit test to make sure `iterator_input_adapter` advances iterators correctly. #3548 - Add a unit test including `<windows.h>`. #3631 #### Documentation and examples - Add more examples to documentation. #3464 - Improve documentation on supported types of [`parse`](https://json.nlohmann.me/api/basic_json/parse/) and [`accept`](https://json.nlohmann.me/api/basic_json/accept/). #3245, #3246 - Add documentation on [how to parse JSON Lines](https://json.nlohmann.me/features/parsing/json_lines/) input. #3247 - Fix typos. #3249, #3265, #3426, #3439, #3481, #3499 - Document [parsing to `ordered_json`](https://json.nlohmann.me/features/object_order/#notes-on-parsing). #3325, #3326 - Use `FetchContent_MakeAvailable` in examples. #3345, #3351 - Document [requirement](https://json.nlohmann.me/api/macros/json_diagnostics/#notes) of using the same definition of `JSON_DIAGNOSTICS` in all linked objects. #3360, #3378 - Document [fuzz testing](https://github.com/nlohmann/json/blob/develop/tests/fuzzing.md). #3477, #3478 - Add documentation of [macros](https://json.nlohmann.me/api/macros/) and [runtime assertions](https://json.nlohmann.me/features/assertions/). #3444, #3431 - Fix documentation of [JSON Pointer](https://json.nlohmann.me/features/json_pointer/). #3511, #3520 - Make certain usage patterns more prominent in the README. #3557 - Document [precondition](https://json.nlohmann.me/api/basic_json/parse/#notes) for parsing from `FILE *` and add assertion. #3593 - Improve documentation. #3592 - Add documentation for [comparing `json` and `ordered_json`](https://json.nlohmann.me/api/basic_json/operator_eq/#notes). #3443, #3599 - Adjust JSON Pointer examples and add CI step for the examples. #3622 - Overwork documentation and add more examples. #3553 ### :fire: Deprecated functions The implicit conversion from JSON Pointers to string ([`json_pointer::operator string_t`](https://json.nlohmann.me/api/json_pointer/operator_string_t)) has been deprecated. Use [`json_pointer::to_string`](https://json.nlohmann.me/api/json_pointer/to_string/) instead. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - The function `iterator_wrapper` is deprecated. Please use the member function [`items()`](https://json.nlohmann.me/api/basic_json/items/) instead. - Functions `friend std::istream& operator<<(basic_json&, std::istream&)` and `friend std::ostream& operator>>(const basic_json&, std::ostream&)` are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://json.nlohmann.me/api/operator_gtgt/) and [`friend operator<<(std::ostream&, const basic_json&)`](https://json.nlohmann.me/api/operator_ltlt/) instead. - Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.5
1 year ago
Release date: 2022-01-03 SHA-256: e832d339d9e0c042e7dff807754769d778cf5d6ae9730ce21eed56de99cb5e86 (json.hpp), b94997df68856753b72f0d7a3703b7d484d4745c567f3584ef97c96c25a5798e (include.zip) ### Summary The previous version 3.10.4 introduced support to convert **`std::filesystem`** objects to JSON and vice versa. Unfortunately, we made the assumption that any compiler supporting C++17 would also have proper filesystem support. This was a mistake. This release introduces preprocessor checks (and means to override them) to make sure that the conversion support is only compiled if the compiler is detected to support it. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :bug: Bug fixes - Make sure C++17 filesystem conversions are only used if the compiler supports it. Furthermore, add defines [`JSON_HAS_FILESYSTEM` and `JSON_HAS_EXPERIMENTAL_FILESYSTEM`](https://json.nlohmann.me/features/macros/#json_has_cpp_11-json_has_cpp_14-json_has_cpp_17-json_has_cpp_20) which can be set to `0` to avoid using filesystem support altogether.`std::filesystem`. #3090 #3097 #3101 #3156 #3203 - Fix a compilation error with Nvidia CUDA Compiler (NVCC). #3013 #3234 #### Warnings - Fix a warning for shadowed variables. #3188 #3193 - Fix a warning on a pointless comparison. #3227 #2712 #2676 #1390 #755 ### :zap: Improvements - Add a parameter to the [`update`](https://json.nlohmann.me/api/basic_json/update/) function to recursively merge objects with common keys. #3006 #3069 - Extend [`std::hash`](https://json.nlohmann.me/api/basic_json/std_hash/#version-history) and [`std::swap`](https://json.nlohmann.me/api/basic_json/std_swap/) to work on any `nlohmann::basic_json` specializations rather than just `nlohmann::json`. #3121 ### :hammer: Further Changes #### Tests and CI - Update CI to use Clang 14, GCC 6, and Clang-Tidy 14. #3088 - Update cpplint. #3225 - Add build step for the Nvidia CUDA Compiler (NVCC). #3227 - Remove Travis CI. #3087 #3233 - Compile and execute the test suite with C++17. #3101 #### Documentation - The [mkdocs](https://www.mkdocs.org)-based documentation in [doc/mkdocs](https://github.com/nlohmann/json/tree/develop/doc/mkdocs) has been totally overworked. It now has a unified structure, more examples, and contains all information from the previous Doxygen-based documentation. The single source of truth is now the documentation on <https://json.nlohmann.me> and in particular the [**API Documentation**](https://json.nlohmann.me/api/basic_json/). #3071 - Removed Wandbox online examples. #3071 - Fix typos, links, and parameter names in the documentation. #3102 #3125 #3140 #3145 #3148 - Add more examples. #3071 #3100 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.4
2 years ago
Release date: 2021-10-16 SHA-256: c9ac7589260f36ea7016d4d51a6c95809803298c7caec9f55830a0214c5f9140 (json.hpp), 62c585468054e2d8e7c2759c0d990fd339d13be988577699366fe195162d16cb (include.zip) ### Summary This release fixes two bugs introduced in release 3.10.0 and fixes the conversion of `std::filesystem::path`. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :bug: Bug Fixes - Fix regression bug introduced in release 3.10.0 which broke compilation for types with an explicit default constructor with default arguments. #3077 #3079 - Fix regression bug introduced in release 3.10.0 which treated the return values of `std::find` and `std::remove` as pointers which could break compilation. #3081 #3082 - Fix converting `std::filesystem::path` to JSON. Before release 3.10.3, such a conversion would trigger a stack overflow. Release 3.10.3 then further broke compilation on Windows. #3070 #3073 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.3
2 years ago
Release date: 2021-10-08 SHA-256: bac28658a4c9410faa55960a70c1ac541e8a51bbaae57dc395e23ca5abd3159a (json.hpp), 4ae5744bc1edd216c79f619fd49915c0e490e41b05434c2d2b89e078299f04ed (include.zip) ### Summary This release fixes two more bug introduced in release 3.10.0: the **extended diagnostics triggered assertions** when used with `update()` or when inserting elements into arrays. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :bug: Bug Fixes - Fix bug in the [`update()`](https://json.nlohmann.me/api/basic_json/update/) function when used with extended diagnostics. #3007 #3008 - Fix bug when inserting into arrays when using extended diagnostics. #2926 #3032 #3037 ### :zap: Improvements #### Binary formats - Custom allocators are now supported when writing binary formats (e.g., CBOR, MessagePack) into a `std::vector`. #2982 #2989 #### User-defined type support - Allow conversion from types that do not define an explicit iterator type, but have a `begin()` and `end()` function. #3020 #### Tests and CI - Updated the [Docker image](https://github.com/nlohmann/json-ci) used in the CI. #2981 #2986 - Corrected the compiler version mentioned in the README file. #3040 #### Documentation - Add script to generate docset for Dash, Velocity, and Zeal. #2967 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.2
2 years ago
Release date: 2021-08-26 SHA-256: 059743e48b37e41579ee3a92e82e984bfa0d2a9a2b20b175d04db8089f46f047 (json.hpp), 61e605be15e88deeac4582aaf01c09d616f8302edde7adcaba9261ddc3b4ceca (include.zip) ### Summary This release is made days after the 3.10.1 release due to a bug in the release script: The [3.10.1 release](https://github.com/nlohmann/json/releases/tag/v3.10.1) at GitHub contained the correct files, but the associated tag [v3.10.1](https://github.com/nlohmann/json/tree/v3.10.1) points to the wrong commit. This release is made with a fixed build script. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :zap: Improvements - Fix the release scripts to correctly tag releases. #2973 - Fix some `-Wunused` warnings on `JSON_DIAGNOSTICS` when the library is built without CMake. #2975 #2976 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.1
2 years ago
Release date: 2021-08-24 SHA-256: 0b628af78a2f0f3e2ff41d8dfa18314dd53831ffc2720c2944192d9f53727f4d (json.hpp), 144268f7f85afb0f0fbea7c796723c849724c975f9108ffdadde9ecedaa5f0b1 (include.zip) ### Summary This release fixes a bug introduced in release 3.10.0: the **extended diagnostics triggered an assertion** when used with `ordered_json`. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :bug: Bug Fixes - Fix an assertion triggered in the extended diagnostics using `ordered_json`. #2962 #2963 - Make GDB pretty-printer robust against unset variable names. #2950 ### :zap: Improvements #### Warnings - Add a missing header to `hash.hpp`. #2948 - Fix some `-Wextra-semi-stmt` warnings. #2957 #### Tests and CI - Avoid duplicate builds in AppVeyor. #2952 - Remove an outdated test binary that is not supported any longer. #2941 #2945 - Skip tests that would fail if CMake option `JSON_Install` is set to `OFF`. #2946 #2947 - Move Travis jobs to travis-ci.com. #2938 #2959 - Set stack size for some unit tests when building with MSVC. #2955 #2961 - Add a regression test. #2960 #### Documentation - Update the Homebrew command as [nlohmann-json](https://formulae.brew.sh/formula/nlohmann-json) is now in homebrew-core. #2943 #2966 - Add example for integration via vcpkg. #2944 #2954 - Fix a typo in the documentation. #2968 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
JSON for Modern C++ version 3.10.0
2 years ago
Release date: 2021-08-17 SHA-256: 230f3a03cefd586661ebab577a347c973d97a770afb89e22c52abc3c2a19d0a7 (json.hpp), b5e3bfad07feba218a26a4f809fbb0d1e33450524bf5d7244cabc92cf8178c69 (include.zip) ### Summary JSON for Modern C++ 3.10.0 is the first release for over a year. It contains some new features and a lot of minor changes and bug fixes. Most notably, it introduces [**extended diagnostics.**](https://json.nlohmann.me/home/exceptions/#extended-diagnostic-messages) By defining [`JSON_DIAGNOSTICS`](https://json.nlohmann.me/features/macros/#json_diagnostics) before including the `json.hpp`, a [JSON Pointer](https://datatracker.ietf.org/doc/html/rfc6901) is added to [exceptions](https://json.nlohmann.me/home/exceptions/) which helps to debug issues with object access, array indices, or mismatching types. Another important change behind the curtains is a **fully overworked CI** which performs a lot of checks for every commit which should allow more frequent releases in the future. All changes are backward-compatible. :moneybag: Note you can **support this project** via [GitHub sponsors](https://github.com/sponsors/nlohmann) or [PayPal](http://paypal.me/nlohmann). ### :sparkles: New Features - Add **extended diagnostics information** by adding a [JSON Pointer](https://datatracker.ietf.org/doc/html/rfc6901) to the [exception](https://json.nlohmann.me/home/exceptions/) messages indicating the exact location of a invalid type errors or out-of-bound errors. ``` [json.exception.type_error.302] (/address/housenumber) type must be number, but is string ``` Exceptions in the library are thrown in the local context of the JSON value they are detected. This makes detailed diagnostics messages, and hence debugging, difficult. To create better diagnostics messages, each JSON value needs a pointer to its parent value such that a global context (i.e., a path from the root value to the value that lead to the exception) can be created. That global context is then provided as a JSON Pointer. As this global context comes at the price of storing one additional pointer per JSON value and runtime overhead to maintain the parent relation, extended diagnostics are disabled by default. They can, however, be enabled by defining the preprocessor symbol [`JSON_DIAGNOSTICS`](https://json.nlohmann.me/features/macros/#json_diagnostics) to 1 before including `json.hpp`. See the [`documentation`](https://json.nlohmann.me/home/exceptions/#extended-diagnostic-messages) for more information. #932 #1508 #2562 #2838 #2866 - Add a [**GDB pretty printer**](https://github.com/nlohmann/json/tree/develop/third_party/gdb_pretty_printer) to facilitate reading `basic_json` values in GDB. #1952 #2607 - Add a new value `store` to the [cbor_tag_handler_t](https://json.nlohmann.me/api/basic_json/cbor_tag_handler_t/) which allows to store the tags of CBOR values as binary subtypes. #2863 #2908 - Add support for containers with non-default-constructible types. #2574 #2576 ### :bug: Bug Fixes - Fix a regression bug that failed `ordered_json` to be used when exceptions were switched off. #2347 #2725 #2934 - Added iterator range insertion for `ordered_json`. #2490 #2512 - Change the type of binary subtypes to `std::uint64_t` to support subtypes >255. Furthermore, the return value of the `subtype()` function has been fixed to the documented value `-1` in case no subtype is given. #2863 #2908 - Fix move constructor of internal `json_ref` type which created `null` values when compiled with `-fno-elide-constructors`. #2387 #2405 - Fix the compilation of `input_adapter` for containers in edge cases. #2553 - Allow parsing from `std::byte` containers. #2413 #2546 #2550 #2602 #2869 - Fix memory leak in `to_json` in case a JSON value is reused. #2865 #2872 - Fix compilation error in case symbol `EOF` was not found. #2755 #2756 - Fix Compilation error when using `NLOHMANN_JSON_SERIALIZE_ENUM` with `ordered_json` on libc++. #2491 #2825 #### Warnings A lot of warnings have been fixed in this release. To make sure the library remains warning-free, the CI now breaks in case a warning is found in GCC (261 warning flags), Clang (flag `-Weverything` with 8 exceptions), or MSVC (flag `/W4`). - Fix `-Wimplicit-fallthrough` warnings. #2348 #2349 - Fix `-Wfloat-equal` warnings. #2909 #2911 - Add assertions to suppress C28020 warnings. #2447 - Fix shadow warnings. #1759 #2536 #2444 - Fix compiler warnings in the test suite. #2537 - Fix issues found by Visual Studio Visual Assist #2615 - Fix unused parameter warning. #2646 #2658 #2668 #2706 #2707 - Remove HEDLEY annotation from `exception::what()` to fix C28204 warning. #2673 #2680 - Suppress C4127 warning. #2592 #2875 - Fix truncation warning. #2572 #2874 - Fix useless cast warning. #1777 #2114 #2893 #2902 - Fix unknown pragma warning. #2924 #2925 - Fix `-Wswitch-enum` warnings. #2927 - Fix C4309 and C4100 warnings and treat all MSVC `/W4` warnings as error. #2930 - Suppress fewer warning flags. #2936 ### :zap: Improvements #### Tests and CI The CI chain has been completely overworked and now runs mostly on a dedicated [Docker Image](https://github.com/nlohmann/json-ci) that contains all relevant tools. - Collected all CI calls in a [CMake file](https://github.com/nlohmann/json/blob/develop/cmake/ci.cmake) which can be enabled by setting `JSON_CI`. - Linux now builds with Clang 3.5 to 12 and GCC 4.8 to 11 checking multiple C++ standards. #2540 - Windows builds with MSVC 2015 to 2019, MinGW (GCC 8), Clang 11 and 12, and Clang-CL 11 checking multiple C++ standards. - Mac builds with Xcode 10.2.1 to Xcode 12.4 checking multiple C++ standards. #1798 #2561 #2737 #2790 #2817 - Use static analysis tools Clang-Tidy, Cppcheck, Valgrind, Google Sanitizers, Clang Static Analyzer, Cpplint, and Facebook Infer. - Add internal checks for CMake flags, switched off exceptions, header amalgamation, self-contained headers, and exclusion of certain tests via CTest. - Providers: Move most Travis/AppVeyor builds to GitHub Actions. Use [Drone CI](https://cloud.drone.io/nlohmann/json) for aarch64 build. Remove FOSSA. Properly select "Release" build for Travis CI builds. #2375 #2689 - Remove `#define private public` hack from test files. Instead, macro `JSON_PRIVATE_UNLESS_TESTED` is used in the source code which defaults to `private`, but can be set to `public` to test internals. #43 #913 #1985 #2352 #### CMake - Fixed issue in CMake file that overwrote `CMAKE_CXX_COMPILER` when the test suite was compiled. #2344 #2384 - Only enable CMake options `JSON_BuildTests` and `JSON_Install` by default when the library is the main project. #2513 #2514 - Add CTest label `not_reproducible` to skip non-reproducible tests. #2324 #2560 - Formatted CMake files ##2770 - Add a CMake option `JSON_SystemInclude` to use `SYSTEM` in `target_include_directories`. #2762 - Add CMake option `JSON_FastTests` (`OFF` by default) to which slow test suite. #### Documentation - Fixed typos in the documentation. #2354 #2754 - Extended documentation for discarded values and `is_discarded()` function. #2360 #2363 - Fix Markdown of README. #2582 - Fix example in README file. #2625 #2659 - Fix example in parse exceptions documentation. #2679 - Overworked [documentation of number handling](https://json.nlohmann.me/features/types/number_handling/). #2747 - Add link to Conan Center package to README. #2771 - Added example for CPM.cmake. #2406 - Update README to use HTTPS everywhere. #2789 - Fixed consistency of `using` declarations in README. #2826 - Fix documentation of tests that required a Git checkout. #2845 - Fix code samples in GIF slideshow. #2457 - Update documentation to reference [RFC 8259](https://tools.ietf.org/html/rfc8259.html) as JSON standard. - Add section on how to get support to README file. - Replaced links to Doxygen documentation with new [API documentation](https://json.nlohmann.me/api/basic_json/). - Documented the effect of a [bug](https://github.com/microsoft/STL/issues/2114) in Microsoft's STL that makes `what()` member function of exception objects unusable in case `_HAS_EXCEPTIONS=0` is set. #2824 #### Thirdparty - Updated Hedley to version 15. #2367 - Updated Doctest to version 2.4.6. #2525 #2538 #2686 #2687 ### :hammer: Further Changes - Use C++14 constructs where available. #2533 - Fix `pkg-config.pc` generation. #2690 - Add possibility to set the C++ standard via macros `JSON_HAS_CPP_11`, `JSON_HAS_CPP_14`, `JSON_HAS_CPP_17`, and `JSON_HAS_CPP_20`. By defining any of these symbols, the internal check is overridden and the provided C++ version is unconditionally assumed. This can be helpful for compilers that only implement parts of the standard and would be detected incorrectly. #2730 #2731 #2749 - Add preprocessor symbol `JSON_NO_IO`. When defined, headers `<cstdio>`, `<ios>`, `<iosfwd>`, `<istream>`, and `<ostream>` are not included and parse functions relying on these headers are excluded. This is relevant for environment where these I/O functions are disallowed for security reasons (e.g., Intel Software Guard Extensions (SGX)). #2728 #2729 #2842 #2861 - Benchmarks are handled via `FetchContent` and require CMake version 3.11. Removed Google Benchmark copy. Fix default branch name for Google Benchmarks. #2795 #2796 - Simplify object parser for CBOR. #2879 #2598 - Cleaned up maintainer Makefiles #### Licensing - Clarified license of `is_complete_type` implementation. #2534 - License fix for `integer_sequence` and `index_sequence` implementation. #2683 ### :fire: Deprecated functions Passing iterator pairs or pointer/length pairs to parsing functions (`basic_json::parse`, `basic_json::accept`, `basic_json::sax_parse`, `basic_json::from_cbor`, `basic_json::from_msgpack`, `basic_json::from_ubjson`, `basic_json::from_bson`) via initializer lists is deprecated. Instead, pass two iterators; for instance, call `basic_json::from_cbor(ptr, ptr+len)` instead of `basic_json::from_cbor({ptr, len})`. The following functions have been deprecated in earlier versions and will be removed in the next major version (i.e., 4.0.0): - Function [`iterator_wrapper`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a0a8051760196ac813fd5eb3c8d5a2976.html#a0a8051760196ac813fd5eb3c8d5a2976) are deprecated. Please use the member function [`items()`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5961446010dfc494e0c247b4e9026977.html#a5961446010dfc494e0c247b4e9026977) instead. - Functions [`friend std::istream& operator<<(basic_json&, std::istream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a60ca396028b8d9714c6e10efbf475af6.html#a60ca396028b8d9714c6e10efbf475af6) and [`friend std::ostream& operator>>(const basic_json&, std::ostream&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a34d6a60dd99e9f33b8273a1c8db5669b.html#a34d6a60dd99e9f33b8273a1c8db5669b) are deprecated. Please use [`friend std::istream& operator>>(std::istream&, basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_aaf363408931d76472ded14017e59c9e8.html#aaf363408931d76472ded14017e59c9e8) and [`friend operator<<(std::ostream&, const basic_json&)`](https://nlohmann.github.io/json/doxygen/classnlohmann_1_1basic__json_a5e34c5435e557d0bf666bd7311211405.html#a5e34c5435e557d0bf666bd7311211405) instead. All deprecations are annotated with [`HEDLEY_DEPRECATED_FOR`](https://nemequ.github.io/hedley/api-reference.html#HEDLEY_DEPRECATED_FOR) to report which function to use instead.
iOS macOS watchOS tvOS
AFNetworking/AFNetworking 4.0.1
A delightful networking framework for iOS, macOS, watchOS, and tvOS.
⭐️ 33,355
🕓 45 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Fixes and Updates
3 years ago
Released on Sunday, April 19, 2020. All issues associated with this milestone can be found using this [filter](https://github.com/AFNetworking/AFNetworking/milestone/20?closed=1). #### Updated * Project templates and integrations. * Implemented by Kaspik in [#4531](https://github.com/AFNetworking/AFNetworking/pull/4531). * Various CocoaPods podspec settings. * Implemented by ElfSundae in [#4528](https://github.com/AFNetworking/AFNetworking/pull/4528), [#4532](https://github.com/AFNetworking/AFNetworking/pull/4532), and [#4533](https://github.com/AFNetworking/AFNetworking/pull/4533). #### Fixed * Crash during authentication delegate method. * Implemented by Kaspik, ElfSundae, and jshier in [#4542](https://github.com/AFNetworking/AFNetworking/pull/4542), [#4552](https://github.com/AFNetworking/AFNetworking/pull/4552), and [#4553](https://github.com/AFNetworking/AFNetworking/pull/4553). * SPM integration. * Implemented by jshier in [#4554](https://github.com/AFNetworking/AFNetworking/pull/4554). * Improper update instead of replacement of header values. * Implemented by ElfSundae in [#4550](https://github.com/AFNetworking/AFNetworking/pull/4550). * Nullability of some methods. * Implemented by ElfSundae in [#4551](https://github.com/AFNetworking/AFNetworking/pull/4551). * Typos in CHANGELOG. * Implemented by ElfSundae in [#4537](https://github.com/AFNetworking/AFNetworking/pull/4537). * Missing tvOS compatibility for some methods. * Implemented by ElfSundae in [#4536](https://github.com/AFNetworking/AFNetworking/pull/4536). * Missing `FOUNDATION_EXPORT` for `AFJSONObjectByRemovingKeysWithNullValues`. * Implemented by ElfSundae in [#4529](https://github.com/AFNetworking/AFNetworking/pull/4529). #### Removed * Unused UIImage+AFNetworking.h file. * Implemented by ElfSundae in [#4535](https://github.com/AFNetworking/AFNetworking/pull/4535).
A Long Time Coming
3 years ago
Released on Sunday, March 29, 2020. All issues associated with this milestone can be found using this [filter](https://github.com/AFNetworking/AFNetworking/milestone/16?closed=1). #### Added * Notificate when a downloaded file has been moved successfully. * Implemented by xingheng in [#4393](https://github.com/AFNetworking/AFNetworking/pull/4393). * Specific error for certificate pinning failure. * Implemented by 0xced in [#3425](https://github.com/AFNetworking/AFNetworking/pull/3425). * `WKWebView` extensions. * Implemented by tjanela in [#4439](https://github.com/AFNetworking/AFNetworking/pull/4439). * Automatic location of certificates in the main bundle for certificate pinning. * Implemented by 0xced in [#3752](https://github.com/AFNetworking/AFNetworking/pull/3752). * User-Agent support for tvOS. * Implemented by ghking in [#4014](https://github.com/AFNetworking/AFNetworking/pull/4014). * Ability for `AFHTTPSessionManager` to recreate its underlying `NSURLSession`. * Implemented by Kaspik in [#4256](https://github.com/AFNetworking/AFNetworking/pull/4256). * Ability to set HTTP headers per request. * Implemented by stnslw in [#4113](https://github.com/AFNetworking/AFNetworking/pull/4113). * Ability to capture `NSURLSessionTaskMetrics`. * Implemented by Caelink in [#4237](https://github.com/AFNetworking/AFNetworking/pull/4237). #### Updated * `dataTaskWithHTTPMethod` to be public. * Implemented by smartinspereira in [#4007](https://github.com/AFNetworking/AFNetworking/pull/4007). * Reachability notification to include the instance which issued the notification. * Implemented by LMsgSendNilSelf in [#4051](https://github.com/AFNetworking/AFNetworking/pull/4051). * `AFJSONObjectByRemovingKeysWithNullValues` to be public. * Implemented by ashfurrow in [#4051](https://github.com/AFNetworking/AFNetworking/pull/4051). * `AFJSONObjectByRemovingKeysWithNullValues` to remove `NSNull` values from `NSArray`s. * Implemented by ashfurrow in [#4052](https://github.com/AFNetworking/AFNetworking/pull/4052). #### Changed * Automated CI to GitHub Actions. * Implemented by jshier in [#4523](https://github.com/AFNetworking/AFNetworking/pull/4523). #### Fixed * Explicit `NSSecureCoding` support. * Implemented by jshier in [#4523](https://github.com/AFNetworking/AFNetworking/pull/4523). * Deprecated API usage on Catalyst. * Implemented by jshier in [#4523](https://github.com/AFNetworking/AFNetworking/pull/4523). * Nullability annotations. * Implemented by jshier in [#4523](https://github.com/AFNetworking/AFNetworking/pull/4523). * `AFImageDownloader` to more accurately cancel downloads. * Implemented by kinarobin in [#4407](https://github.com/AFNetworking/AFNetworking/pull/4407). * Double KVO notifications in `AFNetworkActivityManager`. * Implemented by kinarobin in [#4406](https://github.com/AFNetworking/AFNetworking/pull/4406). * Availability annotations around `NSURLSessionTaskMetrics`. * Implemented by ElfSundae in [#4516](https://github.com/AFNetworking/AFNetworking/pull/4516). * Issues with `associated_object` and subclasses. * Implemented by welcommand in [#3872](https://github.com/AFNetworking/AFNetworking/pull/3872). * Memory leak in example application. * Implemented by svoit in [#4196](https://github.com/AFNetworking/AFNetworking/pull/4196). * Crashes in mulithreaded scenarios and `dispatch_barrier`. * Implemetned by streeter in [#4474](https://github.com/AFNetworking/AFNetworking/pull/4474). * Issues with `NSSecureCoding`. * Implemented by ElfSudae in [#4409](https://github.com/AFNetworking/AFNetworking/pull/4409). * Code style issues. * Implemented by svoit in [#4200](https://github.com/AFNetworking/AFNetworking/pull/4200). * Race condition in `AFImageDownloader`. * Implemented by bbeversdorf in [#4246](https://github.com/AFNetworking/AFNetworking/pull/4246). * Coding style issues. * Implemented by LeeHongHwa in [#4002](https://github.com/AFNetworking/AFNetworking/pull/4002). #### Removed * Support for iOS < 9, macOS < 10.10. * Implemented by jshier in [#4523](https://github.com/AFNetworking/AFNetworking/pull/4523). * All previously deprecated APIs. * Implemented by jshier in [#4523](https://github.com/AFNetworking/AFNetworking/pull/4523). * Unnecessary `__block` capture. * Implemented by kinarobin in [#4526](https://github.com/AFNetworking/AFNetworking/pull/4526). * Workaround for `NSURLSessionUploadTask` creation on iOS 7. * Implemented by kinarobin in [#4525](https://github.com/AFNetworking/AFNetworking/pull/4525). * Workaround for safe `NSURLSessionTask` creation on iOS < 8. * Implemented by kinarobin in [#4401](https://github.com/AFNetworking/AFNetworking/pull/4401). * `UIWebView` extensions. * Implemented by tjanela in [#4439](https://github.com/AFNetworking/AFNetworking/pull/4439).
2.7.0
4 years ago
Released on Tuesday, February 12, 2019. All issues associated with this milestone can be found using this [filter](https://github.com/AFNetworking/AFNetworking/issues?q=milestone%3A2.7.0+is%3Aclosed). #### Fixed * Update Podfile to work on modern CocoaPods * Fixed by [SlaunchaMan](https://github.com/SlaunchaMan) in [#4329](https://github.com/AFNetworking/AFNetworking/pull/4329). * Add nullability specifiers to all `id responseObject` parameters * Fixed by [sashaweiss](https://github.com/sashaweiss) in [#4335](https://github.com/AFNetworking/AFNetworking/pull/4335). * Fix empty content crash on `AFHTTPSessionManager.post` * Fixed by [jcravioto](https://github.com/jcravioto) in [#4296](https://github.com/AFNetworking/AFNetworking/pull/4296).
3.2.1
5 years ago
Released on Friday, May 04, 2018. All issues associated with this milestone can be found using this [filter](https://github.com/AFNetworking/AFNetworking/issues?q=milestone%3A3.2.1+is%3Aclosed). #### Updated * Xcode 9.3 Support * Implemented by Jeff Kelley in [#4199](https://github.com/AFNetworking/AFNetworking/pull/4199). * Update HTTPBin certificates for April 2018. * Implemented by Jeff Kelley in [#4198](https://github.com/AFNetworking/AFNetworking/pull/4198). #### Additional Changes * Remove conflicting nullable specifier on init * Implemented by Nick Brook and Jeff Kelley in [#4182](https://github.com/AFNetworking/AFNetworking/pull/4182). * Use @available if available to silence a warning. * Implemented by Jeff Kelley in [#4138](https://github.com/AFNetworking/AFNetworking/pull/4138). * UIImageView+AFNetworking: Prevent stuck state for malformed urlRequest * Implemented by Adam Duflo and aduflo in [#4131](https://github.com/AFNetworking/AFNetworking/pull/4131). * add the link for LICENSE * Implemented by Liao Malin in [#4125](https://github.com/AFNetworking/AFNetworking/pull/4125). * Fix analyzer warning for upload task creation * Implemented by Jeff Kelley in [#4122](https://github.com/AFNetworking/AFNetworking/pull/4122).
3.2.0
5 years ago
Released on Friday, December 15, 2017. All issues associated with this milestone can be found using this [filter](https://github.com/AFNetworking/AFNetworking/issues?q=milestone%3A3.2.0+is%3Aclosed). #### Added * Config `AFImageDownloader` `NSURLCache` and ask `AFImageRequestCache` implementer if an image should be cached * Implemented by wjehenddher in [#4010](https://github.com/AFNetworking/AFNetworking/pull/4010). * Add `XMLParser`/`XMLDocument` serializer tests * Implemented by skyline75489 in [#3753](https://github.com/AFNetworking/AFNetworking/pull/3753). * Enable custom httpbin URL with `HTTPBIN_BASE_URL` environment variable * Implemented by 0xced in [#3748](https://github.com/AFNetworking/AFNetworking/pull/3748). * `AFHTTPSessionManager` now throws exception if SSL pinning mode is set for non https sessions * Implemented by 0xced in [#3687](https://github.com/AFNetworking/AFNetworking/pull/3687). #### Updated * Update security policy test certificates * Implemented by SlaunchaMan in [#4103](https://github.com/AFNetworking/AFNetworking/pull/4103). * Allow return value of HTTP redirection block to be `NULL` * Implemented by TheDom in [#3975](https://github.com/AFNetworking/AFNetworking/pull/3975). * Clarify documentation for supported encodings in `AFJSONResponseSerializer` * Implemented by skyline75489 in [#3750](https://github.com/AFNetworking/AFNetworking/pull/3750). * Handle Error Pointers according to Cocoa Convention * Implemented by tclementdev in [#3653](https://github.com/AFNetworking/AFNetworking/pull/3653). * Updates `AFHTTPSessionManager` documentation to reflect v3.x change * Implemented by ecaselles in [#3476](https://github.com/AFNetworking/AFNetworking/pull/3476). * Improved code base to generate fewer warnings when using stricter compiler settings * Implemented by 0xced in [3431](https://github.com/AFNetworking/AFNetworking/pull/3431). #### Changed * Change “Mac OS X” and “OS X” references to “macOS” * Implemented by SlaunchaMan in [#4104](https://github.com/AFNetworking/AFNetworking/pull/4104). #### Fixed * Fixed crash around customizing `NSURLCache` size for < iOS 8.2 * Implemented by kcharwood in [#3735](https://github.com/AFNetworking/AFNetworking/pull/3735). * Fixed issue where `UIWebView` extension did not preserve all of the request information * Implemented by skyline75489 in [#3733](https://github.com/AFNetworking/AFNetworking/pull/3733). * Fixed bug with webview delegate callback * Implemented by kcharwood in [#3727](https://github.com/AFNetworking/AFNetworking/pull/3727). * Fixed crash when passing invalid JSON to request serialization * Implemented by 0xced in [#3719](https://github.com/AFNetworking/AFNetworking/pull/3719). * Fixed potential KVO crasher for URL Session Task delegates * Implemented by 0xced in [#3718](https://github.com/AFNetworking/AFNetworking/pull/3718). * Removed ambiguous array creation in `AFSecurityPolicy` * Implemented by sgl0v in [#3679](https://github.com/AFNetworking/AFNetworking/pull/3679). * Fixed issue where `NS_UNAVAILABLE` is not reported for `AFNetworkReachabilityManager` * Implemented by Microbee23 in [#3649](https://github.com/AFNetworking/AFNetworking/pull/3649). * Require app extension api only on watchOS * Implemented by ethansinjin in [#3612](https://github.com/AFNetworking/AFNetworking/pull/3612). * Remove KVO of progress in favor of using the NSURLSession delegate APIs * Implemented by coreyfloyd in [#3607](https://github.com/AFNetworking/AFNetworking/pull/3607). * Fixed an issue where registering a `UIProgessView` to a task that was causing a crash * Implemented by Starscream27 in [#3604](https://github.com/AFNetworking/AFNetworking/pull/3604). * Moved `[self didChangeValueForKey:@"currentState"]` into correct scope * Implemented by chenxin0123 in [#3565](https://github.com/AFNetworking/AFNetworking/pull/3565). * Fixed issue where response serializers did not inherit super class copying * Implemented by kcharwood in [#3559](https://github.com/AFNetworking/AFNetworking/pull/3559). * Fixed crashes due to race conditions with `NSMutableDictionary` access in `AFHTTPRequestSerializer` * Implemented by alexbird in [#3526](https://github.com/AFNetworking/AFNetworking/pull/3526). * Updated dash character to improve markdown parsing for license * Implemented by gemmakbarlow in [#3488](https://github.com/AFNetworking/AFNetworking/pull/3488). #### Removed * Deprecate the unused stringEncoding property of `AFHTTPResponseSerializer` * Implemented by 0xced in [#3751](https://github.com/AFNetworking/AFNetworking/pull/3751). * Removed unused `AFTaskStateChangedContext` * Implemented by yulingtianxia in [#3432](https://github.com/AFNetworking/AFNetworking/pull/3432).
3.1.0
7 years ago
Released on Thursday, March 31, 2016. All issues associated with this milestone can be found using this [filter](https://github.com/AFNetworking/AFNetworking/issues?q=milestone%3A3.1.0+is%3Aclosed). #### Added - Improved `AFImageResponseSerializer` test coverage - Implemented by quellish in [#3367](https://github.com/AFNetworking/AFNetworking/pull/3367). - Exposed `AFQueryStringFromParameters` and `AFPercentEscapedStringFromString` for public use. - Implemented by Kevin Harwood in [#3160](https://github.com/AFNetworking/AFNetworking/pull/3160). #### Updated - Updated Test Suite to run on Xcode 7.3 - Implemented by Kevin Harwood in [#3418](https://github.com/AFNetworking/AFNetworking/pull/3418). - Added white space to URLs in code comment to allow Xcode to properly parse them - Implemented by Draveness in [#3384](https://github.com/AFNetworking/AFNetworking/pull/3384). - Updated documentation to match method names and correct compiler warnings - Implemented by Hakon Hanesand in [#3369](https://github.com/AFNetworking/AFNetworking/pull/3369). - Use `NSKeyValueChangeNewKey` constant in change dictionary rather than hardcoded string. - Implemented by Wenbin Zhang in [#3360](https://github.com/AFNetworking/AFNetworking/pull/3360). - Resolved compiler warnings for documentation errors - Implemented by Ricardo Santos in [#3336](https://github.com/AFNetworking/AFNetworking/pull/3336). #### Changed - Reverted `NSURLSessionAuthChallengeDisposition` to `NSURLSessionAuthChallengeCancelAuthenticationChallenge` for SSL Pinning - Implemented by Kevin Harwood in [#3417](https://github.com/AFNetworking/AFNetworking/pull/3417). #### Fixed - Removed trailing question mark in query string if parameters are empty - Implemented by Kevin Harwood in [#3386](https://github.com/AFNetworking/AFNetworking/pull/3386). - Fixed crash if bad URL was passed into the image downloader - Implemented by Christian Wen and Kevin Harwood in [#3385](https://github.com/AFNetworking/AFNetworking/pull/3385). - Fixed image memory calculation - Implemented by 周明宇 in [#3344](https://github.com/AFNetworking/AFNetworking/pull/3344). - Fixed issue where UIButton image downloading called wrong cancel method - Implemented by duanhong in [#3332](https://github.com/AFNetworking/AFNetworking/pull/3332). - Fixed image downloading cancellation race condition - Implemented by Kevin Harwood in [#3325](https://github.com/AFNetworking/AFNetworking/pull/3325). - Fixed static analyzer warnings on AFNetworkReachabilityManager - Implemented by Jeff Kelley in [#3315](https://github.com/AFNetworking/AFNetworking/pull/3315). - Fixed issue where download progress would not be reported in iOS 7 - Implemented by zwm in [#3294](https://github.com/AFNetworking/AFNetworking/pull/3294). - Fixed status code 204/205 handling - Implemented by Kevin Harwood in [#3292](https://github.com/AFNetworking/AFNetworking/pull/3292). - Fixed crash when passing nil/null for progress in UIWebView extension - Implemented by Kevin Harwood in [#3289](https://github.com/AFNetworking/AFNetworking/pull/3289). #### Removed - Removed workaround for NSJSONSerialization bug that was fixed in iOS 7 - Implemented by Cédric Luthi in [#3253](https://github.com/AFNetworking/AFNetworking/pull/3253).
3.0.4
7 years ago
Released on Friday, December 18, 2015. All issues associated with this milestone can be found using this [filter](https://github.com/AFNetworking/AFNetworking/issues?q=milestone%3A3.0.4+is%3Aclosed). #### Fixed - Fixed issue where `AFNSURLSessionTaskDidResumeNotification` was removed twice - Implemented by Kevin Harwood in [#3236](https://github.com/AFNetworking/AFNetworking/pull/3236).
3.0.3
7 years ago
Released on Wednesday, December 16, 2015. All issues associated with this milestone can be found using this [filter](https://github.com/AFNetworking/AFNetworking/issues?q=milestone%3A3.0.3+is%3Aclosed). #### Added - Added tests for response serializers to increase test coverage - Implemented by Kevin Harwood in [#3233](https://github.com/AFNetworking/AFNetworking/pull/3233). #### Fixed - Fixed `AFImageResponseSerializer` serialization macros on watchOS and tvOS - Implemented by Charles Joseph in [#3229](https://github.com/AFNetworking/AFNetworking/pull/3229).
3.0.2
7 years ago
Released on Monday, December 14, 2015. All issues associated with this milestone can be found using this [filter](https://github.com/AFNetworking/AFNetworking/issues?q=milestone%3A3.0.2+is%3Aclosed). #### Fixed - Fixed a crash in `AFURLSessionManager` when resuming download tasks - Implemented by Chongyu Zhu in [#3222](https://github.com/AFNetworking/AFNetworking/pull/3222). - Fixed issue where background button image would not be updated - Implemented by eofs in [#3220](https://github.com/AFNetworking/AFNetworking/pull/3220).
3.0.1
7 years ago
Released on Friday, December 11, 2015. All issues associated with this milestone can be found using this [filter](https://github.com/AFNetworking/AFNetworking/issues?q=milestone%3A3.0.1+is%3Aclosed). #### Added - Added Xcode 7.2 support to Travis - Implemented by Kevin Harwood in [#3216](https://github.com/AFNetworking/AFNetworking/pull/3216). #### Fixed - Fixed race condition with ImageView/Button image downloading when starting/cancelling/starting the same request - Implemented by Kevin Harwood in [#3215](https://github.com/AFNetworking/AFNetworking/pull/3215).
iOS macOS watchOS tvOS
danielgindi/Charts v4.1.0
Beautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart.
⭐️ 27,100
🕓 1 year ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
5.0.0
24 weeks ago
# A New Name! `Charts` is now called `DGCharts` to prevent conflicts with Apple's SwiftUI Charts. To fix your projects simply replace `import Charts` with `import DGCharts` ## What's Changed * Fix yOffset documentation typo by @erkanyildiz in https://github.com/danielgindi/Charts/pull/4898 * The use of special character in folder name don't allow unzip correct… by @rquesada in https://github.com/danielgindi/Charts/pull/4661 * Unnecessary space Removal and Semicolons are removed by @guptamohit1907 in https://github.com/danielgindi/Charts/pull/5016 * Change library name from Charts to DGCharts by @pmairoldi in https://github.com/danielgindi/Charts/pull/5027 * Adding a tutorial link to README.md by @stepanovgena in https://github.com/danielgindi/Charts/pull/4971 * fixed no used warning by @eren-celik in https://github.com/danielgindi/Charts/pull/4841 * Turn on the BUILD_LIBRARY_FOR_DISTRIBUTION flag by @matopeto in https://github.com/danielgindi/Charts/pull/4912 * bump min version to 13 for ios project by @waterskier2007 in https://github.com/danielgindi/Charts/pull/5062 * Fix Node 12 deprecation warning by @FelixHerrmann in https://github.com/danielgindi/Charts/pull/5043 * Merge from master by @pmairoldi in https://github.com/danielgindi/Charts/pull/5067 * Fix Xcode 14.3 import warnings by @FelixHerrmann in https://github.com/danielgindi/Charts/pull/5041 * remove swift-algorithms package in favor of manully importing needed … by @pmairoldi in https://github.com/danielgindi/Charts/pull/5069 * update ci by @pmairoldi in https://github.com/danielgindi/Charts/pull/5070 * [WIP] Release/5.0.0 by @pmairoldi in https://github.com/danielgindi/Charts/pull/5028 ## New Contributors * @erkanyildiz made their first contribution in https://github.com/danielgindi/Charts/pull/4898 * @rquesada made their first contribution in https://github.com/danielgindi/Charts/pull/4661 * @guptamohit1907 made their first contribution in https://github.com/danielgindi/Charts/pull/5016 * @stepanovgena made their first contribution in https://github.com/danielgindi/Charts/pull/4971 * @eren-celik made their first contribution in https://github.com/danielgindi/Charts/pull/4841 * @matopeto made their first contribution in https://github.com/danielgindi/Charts/pull/4912 * @waterskier2007 made their first contribution in https://github.com/danielgindi/Charts/pull/5062 **Full Changelog**: https://github.com/danielgindi/Charts/compare/v4.1.0...5.0.0
v4.1.0
1 year ago
## What's Changed * Update README.md by @jeremyteh in https://github.com/danielgindi/Charts/pull/4886 * Fix navigation bar transparent issue by @wlixcc in https://github.com/danielgindi/Charts/pull/4875 * Update ChartDataSet.swift by @batikansosun in https://github.com/danielgindi/Charts/pull/4861 * Fixes for Swift 5.7 compiler by @lukeredpath in https://github.com/danielgindi/Charts/pull/4823 * Add double mark for compiler check related with issue #4835 by @eliakorkmaz in https://github.com/danielgindi/Charts/pull/4836 * Fix chart only drawing first entry by @FelixHerrmann in https://github.com/danielgindi/Charts/pull/4829 ## New Contributors * @jeremyteh made their first contribution in https://github.com/danielgindi/Charts/pull/4886 * @wlixcc made their first contribution in https://github.com/danielgindi/Charts/pull/4875 * @batikansosun made their first contribution in https://github.com/danielgindi/Charts/pull/4861 * @lukeredpath made their first contribution in https://github.com/danielgindi/Charts/pull/4823 * @eliakorkmaz made their first contribution in https://github.com/danielgindi/Charts/pull/4836 * @FelixHerrmann made their first contribution in https://github.com/danielgindi/Charts/pull/4829 **Full Changelog**: https://github.com/danielgindi/Charts/compare/v4.0.3...v4.1.0
v4.0.3
1 year ago
## What's Changed * Remove Cocoadocs reference from README by @rph8 in https://github.com/danielgindi/Charts/pull/4812 * Highlighter fix by @kcome in https://github.com/danielgindi/Charts/pull/4721 * Added tutorial links by @phuanggh in https://github.com/danielgindi/Charts/pull/4669 * Update ChartData.swift by @truongtho1603 in https://github.com/danielgindi/Charts/pull/4822 * Properties on axis renderers to Objc (Fixes #4800) by @SLambrakis in https://github.com/danielgindi/Charts/pull/4801 ## New Contributors * @rph8 made their first contribution in https://github.com/danielgindi/Charts/pull/4812 * @kcome made their first contribution in https://github.com/danielgindi/Charts/pull/4721 * @phuanggh made their first contribution in https://github.com/danielgindi/Charts/pull/4669 * @truongtho1603 made their first contribution in https://github.com/danielgindi/Charts/pull/4822 * @SLambrakis made their first contribution in https://github.com/danielgindi/Charts/pull/4801 **Full Changelog**: https://github.com/danielgindi/Charts/compare/v4.0.2...v4.0.3
v4.0.2 Release
1 year ago
- Fixes build issues by replacing `class` protocol conformance to `AnyObject` - Update `swift-algorithms` to 1.0 - Add support for cocoapods for 4.0 - Bump lowest supported versions to iOS 10, macOS 10.12, tvOS 10
v4.0.1 Release
3 years ago
## v4.0.1 Release Thanks @jjatie, 4.0.1 release brings: Support Swift Package Manager and switch to another Snapshot test framework. Use Github Actions instead of Travis CI to run faster and work around Carthage issues against Xcode12. Snapshot UT now supports Apple Silicon. Adopt Swift-Algorithm crafted by Apple and the community. Full [changelog](https://github.com/danielgindi/Charts/blob/master/CHANGELOG.md) ------------- We have merged our long waited 4.0 branch into master. It adopts latest Swift trends and benefits and more flexbile and More swift! This is a huge release as a lot of APIs have changed and adopted new protocols. So please expect it will break your code especially about the collection protocols. We will add a few Pull requests in the near future such as https://github.com/danielgindi/Charts/pull/4411. The pre-release could last a little bit longer since we don't want to push people to update. But we do encourage people to try it out and give us feed back.
Xcode 12 support
3 years ago
Xcode 12 support
v3.5.0 Release
3 years ago
### Build on Xcode 11.4 and latest Swift (pod) Change log:https://github.com/danielgindi/Charts/blob/master/CHANGELOG.md **Merged pull requests:** [Full github commit log](https://github.com/danielgindi/Charts/compare/v3.4.0...v3.5.0) - Fix warnings on current code base [\#4321](https://github.com/danielgindi/Charts/pull/4321) ([liuxuan30](https://github.com/liuxuan30)) - Bugfix/legend offset double [\#4277](https://github.com/danielgindi/Charts/pull/4277) ([danielgindi](https://github.com/danielgindi)) - Fix for \#4274 string comparison issue in ChartData::getDataSetByLabel [\#4275](https://github.com/danielgindi/Charts/pull/4275) ([PeterKaminski09](https://github.com/PeterKaminski09)) - Restored correct velocity sampler [\#4273](https://github.com/danielgindi/Charts/pull/4273) ([danielgindi](https://github.com/danielgindi)) - Bugfix/pie highlight [\#4272](https://github.com/danielgindi/Charts/pull/4272) ([danielgindi](https://github.com/danielgindi)) - Call chartViewDidEndPanning on when \*panning\* is ended [\#4271](https://github.com/danielgindi/Charts/pull/4271) ([danielgindi](https://github.com/danielgindi)) - labelXOffset = 10 is default for radar chart only [\#4270](https://github.com/danielgindi/Charts/pull/4270) ([danielgindi](https://github.com/danielgindi)) - Use faster check for line whether it's inside drawing rect [\#4269](https://github.com/danielgindi/Charts/pull/4269) ([danielgindi](https://github.com/danielgindi)) - Refactor/cleanup [\#4268](https://github.com/danielgindi/Charts/pull/4268) ([danielgindi](https://github.com/danielgindi)) - address \#4033 draw half pie chart more accurate [\#4266](https://github.com/danielgindi/Charts/pull/4266) ([liuxuan30](https://github.com/liuxuan30)) - Update README.md, added link to tutorial about Radar Charts. [\#4258](https://github.com/danielgindi/Charts/pull/4258) ([DavidPiper94](https://github.com/DavidPiper94)) - Changes to fix Catalyst compatibility [\#4254](https://github.com/danielgindi/Charts/pull/4254) ([CAPIStkidd](https://github.com/CAPIStkidd)) - Platform separation [\#4178](https://github.com/danielgindi/Charts/pull/4178) ([jjatie](https://github.com/jjatie)) - introduce gracefully degrading abstractions for dark mode for ios and… [\#4171](https://github.com/danielgindi/Charts/pull/4171) ([motocodeltd](https://github.com/motocodeltd)) - Performed recommended localization and internationalization changes. [\#4162](https://github.com/danielgindi/Charts/pull/4162) ([coltonlemmon](https://github.com/coltonlemmon)) - Use interpolation instead of '+' concatenation for problematic expression [\#4123](https://github.com/danielgindi/Charts/pull/4123) ([Jumhyn](https://github.com/Jumhyn)) - Allowing overriding for YAxisRenderer.drawYLabels [\#4089](https://github.com/danielgindi/Charts/pull/4089) ([muclemente](https://github.com/muclemente)) - move isDrawCirclesEnabled check further up in code to avoid creating … [\#4050](https://github.com/danielgindi/Charts/pull/4050) ([xymtek](https://github.com/xymtek))
3.4.0 Release
4 years ago
### Support Xcode 11 and new Swift 5 ### Bug Fix #4029: Index out of bounds exception in v3.2 in createAccessibleElement #4094: Horizontal Bezier Line Graph Not Drawing Through All Points #4093: Line chart x axis animation is broken #4099: Line renderer did not render lines if their coordinates fell outside of the viewport full change log:https://github.com/danielgindi/Charts/blob/master/CHANGELOG.md pod updated
3.3.0 Release
4 years ago
**This will be a breaking update due to #3847 that we changed dataSet initializers API interface and fixed Xcode warnings for previous release.** ***pod has been updated again to 3.3.0 tag, it's previously using 3.3*** ### Now supports Xcode 10.2 and Swift 5.0 #### Highlights of fixed issues and merged requests: - Renamed `values` to `entries` to reflect the property's type [\#3847](https://github.com/danielgindi/Charts/pull/3847) ([jjatie](https://github.com/jjatie)) - Fix horizontal bar chart not drawing values and add unit tests [\#3906](https://github.com/danielgindi/Charts/pull/3906) ([liuxuan30](https://github.com/liuxuan30)) - fix \#3860. maxHeight didn't count the last label [\#3900](https://github.com/danielgindi/Charts/pull/3900) ([liuxuan30](https://github.com/liuxuan30)) - Migrating to built-in algorithms [\#3892](https://github.com/danielgindi/Charts/pull/3892) ([jjatie](https://github.com/jjatie)) - Use a stock iterator instead of a custom one. [\#3891](https://github.com/danielgindi/Charts/pull/3891) ([phughes](https://github.com/phughes)) - Removed unnecessary \#if statements and unified style to align with Xc… [\#3884](https://github.com/danielgindi/Charts/pull/3884) ([jjatie](https://github.com/jjatie)) - Velocity samples calculation [\#3883](https://github.com/danielgindi/Charts/pull/3883) ([jjatie](https://github.com/jjatie)) - Minor updates for Swift 5 [\#3874](https://github.com/danielgindi/Charts/pull/3874) ([jjatie](https://github.com/jjatie)) - Replace AnyObject with Any [\#3864](https://github.com/danielgindi/Charts/pull/3864) ([jjatie](https://github.com/jjatie)) - Data as any [\#3863](https://github.com/danielgindi/Charts/pull/3863) ([jjatie](https://github.com/jjatie)) - Reassess convenience initializers [\#3862](https://github.com/danielgindi/Charts/pull/3862) ([jjatie](https://github.com/jjatie)) - HorizontalBarChar value label offset calculation [\#3854](https://github.com/danielgindi/Charts/pull/3854) ([chaaarly](https://github.com/chaaarly)) - Create `chartViewDidEndAnimate` in ChartViewDelegate [\#3852](https://github.com/danielgindi/Charts/pull/3852) ([Lcsmarcal](https://github.com/Lcsmarcal)) - Align `ChartLimit.LabelPosition` naming with `UIRectCorner` [\#3846](https://github.com/danielgindi/Charts/pull/3846) ([jjatie](https://github.com/jjatie)) #### Full change log https://github.com/danielgindi/Charts/blob/master/CHANGELOG.md
3.2.2 Release
4 years ago
Highlights: **Implemented enhancements:** - Multiple colors for valueline \(Fixes \#3480\) [\#3709](https://github.com/danielgindi/Charts/pull/3709) ([AlexeiGitH](https://github.com/AlexeiGitH)) - use `useValueColorForLine` to enable the same colors - Add Collection conformances to ChartDataSet types [\#3815](https://github.com/danielgindi/Charts/pull/3815) ([jjatie](https://github.com/jjatie)) - improvements in barRect height calculation [\#3650](https://github.com/danielgindi/Charts/pull/3650) ([potato04](https://github.com/potato04)) **Fixed bugs:** - CombinedChartView's candleData don't display in v3.2.0 [\#3662](https://github.com/danielgindi/Charts/issues/3662) - Incorrect behavior for AxisBase.axisMaxLabels [\#3656](https://github.com/danielgindi/Charts/issues/3656) - Horizontal Bar Chart legend issue [\#3301](https://github.com/danielgindi/Charts/issues/3301) - Fixes sharp edges on the line chart [\#3764](https://github.com/danielgindi/Charts/pull/3764) ([stokatyan](https://github.com/stokatyan)) - Fix wrong assignment to axisMaxLabels property [\#3721](https://github.com/danielgindi/Charts/pull/3721) ([ggirotto](https://github.com/ggirotto)) - Fix legend offset bug for horizontal bar chart \(Fixes \#3301\) [\#3736](https://github.com/danielgindi/Charts/pull/3736) ([SvenMuc](https://github.com/SvenMuc)) - Add missing properties to copy\(with:\) methods [\#3715](https://github.com/danielgindi/Charts/pull/3715) ([dstranz](https://github.com/dstranz)) - Fix applying lineCap value for line chart data sets \(Fixes \#3739\) [\#3740](https://github.com/danielgindi/Charts/pull/3740) ([anton-filimonov](https://github.com/anton-filimonov)) - Fix memory leak after rendering [\#3680](https://github.com/danielgindi/Charts/pull/3680) ([YusukeOba](https://github.com/YusukeOba)) - Fix condition that is checked before `chartTranslated` delegate method call [\#3804](https://github.com/danielgindi/Charts/pull/3804) ([anton-filimonov](https://github.com/anton-filimonov)) **Other merged pull requests:** - fix \#3719 [\#3778](https://github.com/danielgindi/Charts/pull/3778) ([liuxuan30](https://github.com/liuxuan30)) - Turned gradient components and locations into constants [\#3775](https://github.com/danielgindi/Charts/pull/3775) ([jjatie](https://github.com/jjatie)) - add chartScaled\(\) call after double tap in BarLineChartViewBase [\#3770](https://github.com/danielgindi/Charts/pull/3770) ([artemiusmk](https://github.com/artemiusmk)) - fix issue \#3662 [\#3664](https://github.com/danielgindi/Charts/pull/3664) ([Michael-Du](https://github.com/Michael-Du)) - Make NSUIAccessibilityElement initializer public. [\#3654](https://github.com/danielgindi/Charts/pull/3654) ([417-72KI](https://github.com/417-72KI)) - Update document to latest format [\#3621](https://github.com/danielgindi/Charts/pull/3621) ([kemchenj](https://github.com/kemchenj)) - Feature - ChartView Pan Ended Delegate Call [\#3612](https://github.com/danielgindi/Charts/pull/3612) ([AntonTheDev](https://github.com/AntonTheDev)) - Axis Renderers Cleanup [\#3164](https://github.com/danielgindi/Charts/pull/3164) ([jjatie](https://github.com/jjatie)) Full changelog: https://github.com/danielgindi/Charts/blob/master/CHANGELOG.md
iOS macOS tvOS
ggerganov/whisper.cpp v1.5.1
Port of OpenAI's Whisper model in C/C++
⭐️ 25,743
🕓 4 days ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
v1.5.1
4 days ago
## Overview Minor update: - With Metal, auto-fallback to CPU if device does not support Apple7 family - Add [server](https://github.com/ggerganov/whisper.cpp/tree/master/examples/server) example ## What's Changed * ISSUE-1329: replace " with ' so it doesn't try to execute code in backticks by @spullara in https://github.com/ggerganov/whisper.cpp/pull/1364 * sync : ggml (ggml-alloc + linker + gguf fixes) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1501 * Fixed with_state methods, to use the correct state by @sandrohanea in https://github.com/ggerganov/whisper.cpp/pull/1519 * #1517 Redistribute CUDA DLLs by @tamo in https://github.com/ggerganov/whisper.cpp/pull/1522 * whisper : reuse whisper_decode_with_state by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1521 * sdl : fix audio callback by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1523 * update deprecated example by @MightyStud in https://github.com/ggerganov/whisper.cpp/pull/1529 * Super Simple Whisper Server by @felrock in https://github.com/ggerganov/whisper.cpp/pull/1380 * Close file after writing in server application by @felrock in https://github.com/ggerganov/whisper.cpp/pull/1533 * bench : multi-thread memcpy by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1534 * Change temp file name for server application by @felrock in https://github.com/ggerganov/whisper.cpp/pull/1535 * Fixed Makefile for MacOS ARM 64 Go bindings by @gleicon in https://github.com/ggerganov/whisper.cpp/pull/1530 * Fixed metal build on macos-latest by @sandrohanea in https://github.com/ggerganov/whisper.cpp/pull/1544 * fix(server): typo in temperature parameter by @Okabintaro in https://github.com/ggerganov/whisper.cpp/pull/1545 * Request to add a new function to get the full language name by @bradmit in https://github.com/ggerganov/whisper.cpp/pull/1546 * server : add --print-realtime param by @ecneladis in https://github.com/ggerganov/whisper.cpp/pull/1541 * cuda : sync some minor stuff from llama.cpp by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1548 * metal : add backend function to check device family support by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1547 ## New Contributors * @spullara made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1364 * @MightyStud made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1529 * @felrock made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1380 * @gleicon made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1530 * @Okabintaro made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1545 * @bradmit made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1546 * @ecneladis made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1541 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.0...v1.5.1
v1.5.0
1 week ago
## Overview This major release includes the following changes: - Full GPU processing of the Encoder and the Decoder with CUDA and Metal is now supported - Efficient beam-search implementation via batched decoding and unified KV cache - Full quantization support of all available `ggml` quantization types - Support for grammar constrained sampling - Support for Distil Whisper models - Support for Whisper Large-v3 and more ### Full GPU support On Apple Silicon, GPU support has been available to a large extend since [15 Sep](https://github.com/ggerganov/whisper.cpp/pull/1270). However, part of the Encoder was still being executed on the CPU due to lack of MSL kernels for the convolution operations. These kernels are now available resulting in additional speed-up of the Encoder in this release: ![image](https://github.com/ggerganov/whisper.cpp/assets/1991296/f8ce8984-0cbc-41be-b578-841f595edf03) *[Encoder performance on Apple M1 Max - before and after](https://github.com/ggerganov/whisper.cpp/pull/1472#issuecomment-1806788526) (plot by @dreness)* For NVIDIA hardware, the entire computation can now be offloaded to the GPU which results in significant performance boost. For detailed performance breakdown, checkout the Benchmarks section below. The GPU processing on Apple Silicon is enabled by default, while for NVIDIA you need to build with `WHISPER_CUBLAS=1`: ```bash # Apple Silicon make # NVIDIA WHISPER_CUBLAS=1 make ``` Implementation: https://github.com/ggerganov/whisper.cpp/pull/1472 Special credits to: @FSSRepo, @slaren ### Batched decoding + efficient Beam Search At last, `whisper.cpp` now supports efficient Beam Search decoding. The missing piece was the implementation of batched decoding, which now follows closely the [unified KV cache idea from llama.cpp](https://github.com/ggerganov/llama.cpp/pull/3228). On modern NVIDIA hardware, the performance with 5 beams is the same as 1 beam thanks to the large amount of computing power available. With Metal, the speed with 5 beams is a bit slower compared to 1 beam, but it is significantly faster compared to 5x times the time for single batch which was observed with the old naive implementation. Beam Search is now enabled by default in `whisper.cpp` to match the OG implementation of OpenAI Whisper. For more performance details, checkout the Benchmarks section below. Implementation: https://github.com/ggerganov/whisper.cpp/pull/1486 ### Quantization support All `ggml` [quantization types](https://github.com/ggerganov/whisper.cpp/blob/ccc85b4ff8d250d0f25ebcac2be0e4a23401c885/ggml.h#L309-L331) are now supported. Quantization mixtures for Whisper model can be implemented. It's still unclear how the quality is affected from the quantization - this is an interesting area which can be explored in the future. ### Grammar sampling The decoder output can now be constrained with a [GBNF grammar](https://github.com/ggerganov/llama.cpp/blob/a6fc554e268634494f33b0de76f9dde650dd292f/grammars/README.md). This can be a useful technique for further improving the transcription quality in situations where the set of possible phrases are limited. https://github.com/ggerganov/whisper.cpp/assets/377495/d24716e2-5e9c-441b-8c6b-395922dccbf4 Implementation: https://github.com/ggerganov/whisper.cpp/pull/1229 Special credits to @ejones ### Distil Whisper Recently, Distil Whisper models have been released: https://huggingface.co/distil-whisper `whisper.cpp` offers support for these models, although it still lacks full implementation of the proposed chunking strategy. Performance details for distilled models are included in the Benchmarks section below. Implementation: https://github.com/ggerganov/whisper.cpp/pull/1424 ### Whisper Large-v3 Recently, OpenAI released a new version 3 of the Large model: https://github.com/openai/whisper/pull/1761 Implementation: https://github.com/ggerganov/whisper.cpp/pull/1444 ### Benchmarks Below is a breakdown of the performance of `whisper.cpp` on Apple Silicon, NVIDIA and CPU. The tables show the Encoder and Decoder speed in `ms/tok`. The `Dec.` column corresponds to batch size 1. The `Bch5` column corresponds to batch size 5. The `PP` column corresponds to batch size 128. For optimal Beam Search performance, the `Bch5` number should be 5 times smaller than `Dec.` | Hw | Config | Model | Th | Enc. | Dec. | Bch5 | PP | Commit | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | M2 Ultra | METAL | tiny | 1 | 11.14 | 1.40 | 0.49 | 0.01 | ccc85b4 | | M2 Ultra | METAL | tiny-q5_0 | 1 | 11.51 | 1.41 | 0.52 | 0.01 | ccc85b4 | | M2 Ultra | METAL | tiny-q5_1 | 1 | 12.21 | 1.41 | 0.52 | 0.01 | ccc85b4 | | M2 Ultra | METAL | base | 1 | 20.21 | 2.05 | 0.77 | 0.02 | ccc85b4 | | M2 Ultra | METAL | base-q5_0 | 1 | 19.89 | 1.96 | 0.81 | 0.02 | ccc85b4 | | M2 Ultra | METAL | base-q5_1 | 1 | 20.14 | 2.02 | 0.81 | 0.02 | ccc85b4 | | M2 Ultra | METAL | small | 1 | 51.01 | 3.97 | 1.74 | 0.05 | ccc85b4 | | M2 Ultra | METAL | small-q5_0 | 1 | 56.86 | 4.09 | 1.85 | 0.06 | ccc85b4 | | M2 Ultra | METAL | small-q5_1 | 1 | 56.81 | 4.14 | 1.85 | 0.06 | ccc85b4 | | M2 Ultra | METAL | medium | 1 | 141.21 | 8.47 | 3.98 | 0.13 | ccc85b4 | | M2 Ultra | METAL | medium-q5_0 | 1 | 160.56 | 8.27 | 4.18 | 0.14 | ccc85b4 | | M2 Ultra | METAL | medium-q5_1 | 1 | 160.52 | 8.40 | 4.15 | 0.14 | ccc85b4 | | M2 Ultra | METAL | medium-dis | 1 | 128.14 | 1.13 | 0.43 | 0.02 | ccc85b4 | | M2 Ultra | METAL | large-v2 | 1 | 248.73 | 11.96 | 6.08 | 0.22 | ccc85b4 | | M2 Ultra | METAL | large-v2-q5_0 | 1 | 286.31 | 11.99 | 6.60 | 0.26 | ccc85b4 | | M2 Ultra | METAL | large-v2-q5_1 | 1 | 284.56 | 12.42 | 6.47 | 0.26 | ccc85b4 | | M2 Ultra | METAL | large-v2-dis | 1 | 224.31 | 1.26 | 0.49 | 0.02 | ccc85b4 | | Hw | Config | Model | Th | Enc. | Dec. | Bch5 | PP | Commit | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | M2 Ultra | COREML METAL | tiny | 1 | 7.60 | 1.41 | 0.50 | 0.01 | ccc85b4 | | M2 Ultra | COREML METAL | base | 1 | 11.90 | 2.07 | 0.78 | 0.02 | ccc85b4 | | M2 Ultra | COREML METAL | small | 1 | 32.19 | 4.10 | 1.78 | 0.05 | ccc85b4 | | M2 Ultra | COREML METAL | medium | 1 | 94.43 | 8.40 | 3.89 | 0.12 | ccc85b4 | | M2 Ultra | COREML METAL | large-v2 | 1 | 179.78 | 12.12 | 6.07 | 0.22 | ccc85b4 | | Hw | Config | Model | Th | Enc. | Dec. | Bch5 | PP | Commit | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | NVIDIA V100 | BLAS CUDA | tiny | 1 | 8.84 | 1.62 | 0.33 | 0.02 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | tiny-q5_0 | 1 | 8.43 | 1.19 | 0.31 | 0.02 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | tiny-q5_1 | 1 | 8.41 | 1.19 | 0.29 | 0.02 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | base | 1 | 14.79 | 2.31 | 0.46 | 0.03 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | base-q5_0 | 1 | 15.05 | 1.66 | 0.44 | 0.03 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | base-q5_1 | 1 | 15.01 | 1.68 | 0.46 | 0.03 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | small | 1 | 40.30 | 4.37 | 0.88 | 0.05 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | small-q5_0 | 1 | 41.17 | 3.11 | 0.94 | 0.05 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | small-q5_1 | 1 | 41.12 | 3.11 | 0.82 | 0.05 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | medium | 1 | 104.93 | 10.06 | 1.77 | 0.11 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | medium-q5_0 | 1 | 107.11 | 6.13 | 2.07 | 0.12 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | medium-q5_1 | 1 | 107.91 | 6.21 | 1.77 | 0.12 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | medium-dis | 1 | 103.45 | 1.11 | 0.24 | 0.02 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | large-v2 | 1 | 171.55 | 15.76 | 2.62 | 0.17 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | large-v2-q5_0 | 1 | 176.27 | 8.61 | 3.17 | 0.19 | ccc85b4 | | NVIDIA V100 | BLAS CUDA | large-v2-q5_1 | 1 | 176.23 | 8.67 | 2.59 | 0.19 | ccc85b4 | | Hw | Config | Model | Th | Enc. | Dec. | Bch5 | PP | Commit | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | AMD Ryzen 9 5950X | AVX2 | tiny | 8 | 197.47 | 1.22 | 0.44 | 0.25 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | tiny-q5_0 | 8 | 222.92 | 0.87 | 0.45 | 0.30 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | tiny-q5_1 | 8 | 221.25 | 0.89 | 0.45 | 0.30 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | base | 8 | 427.14 | 3.11 | 0.88 | 0.43 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | base-q5_0 | 8 | 474.96 | 1.41 | 0.72 | 0.51 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | base-q5_1 | 8 | 485.05 | 1.48 | 0.73 | 0.52 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | small | 8 | 1470.51 | 11.70 | 2.89 | 1.21 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | small-q5_0 | 8 | 1700.43 | 5.48 | 1.98 | 1.41 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | small-q5_1 | 8 | 1719.03 | 5.79 | 2.02 | 1.42 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | medium | 8 | 4417.70 | 35.13 | 8.14 | 3.24 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | medium-q5_0 | 8 | 5335.77 | 17.44 | 5.35 | 3.92 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | medium-q5_1 | 8 | 5372.26 | 18.36 | 5.42 | 3.88 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | medium-dis | 8 | 4070.25 | 4.86 | 1.16 | 0.53 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | large-v2 | 8 | 8179.09 | 66.89 | 15.45 | 5.88 | ccc85b4 | | AMD Ryzen 9 5950X | AVX2 | large-v2-dis | 8 | 7490.45 | 7.06 | 1.63 | 0.70 | ccc85b4 | ### API Changes - Add `struct whisper_context_params` - Add `whisper_log_set` - Deprecate: - `whisper_init_from_file` - `whisper_init_from_buffer` - `whisper_init` - `whisper_init_from_file_no_state` - `whisper_init_from_buffer_no_state` - `whisper_init_no_state` - Add: - `whisper_init_from_file_with_params` - `whisper_init_from_buffer_with_params` - `whisper_init_with_params` - `whisper_init_from_file_with_params_no_state` - `whisper_init_from_buffer_with_params_no_state` - `whisper_init_with_params_no_state` - Diff of `struct whisper_full_params` ```diff struct whisper_full_params { enum whisper_sampling_strategy strategy; @@ -338,6 +435,7 @@ extern "C" { bool translate; bool no_context; // do not use past transcription (if any) as initial prompt for the decoder + bool no_timestamps; // do not generate timestamps bool single_segment; // force single segment output (useful for streaming) bool print_special; // print special tokens (e.g. <SOT>, <EOT>, <BEG>, etc.) bool print_progress; // print progress information @@ -355,8 +453,12 @@ extern "C" { // [EXPERIMENTAL] speed-up techniques // note: these can significantly reduce the quality of the output bool speed_up; // speed-up the audio by 2x using Phase Vocoder + bool debug_mode; // enable debug_mode provides extra info (eg. Dump log_mel) int audio_ctx; // overwrite the audio context size (0 = use default) + // [EXPERIMENTAL] [TDRZ] tinydiarize + bool tdrz_enable; // enable tinydiarize speaker turn detection + // tokens to provide to the whisper decoder as initial prompt // these are prepended to any existing text context from a previous call const char * initial_prompt; @@ -365,6 +467,7 @@ extern "C" { // for auto-detection, set to nullptr, "" or "auto" const char * language; + bool detect_language; // common decoding parameters: bool suppress_blank; // ref: https://github.com/openai/whisper/blob/f82bc59f5ea234d4b97fb2860842ed38519f7e65/whisper/decoding.py#L89 @@ -403,11 +506,24 @@ extern "C" { whisper_encoder_begin_callback encoder_begin_callback; void * encoder_begin_callback_user_data; + // called each time before ggml computation starts + whisper_abort_callback abort_callback; + void * abort_callback_user_data; + // called by each decoder to filter obtained logits whisper_logits_filter_callback logits_filter_callback; void * logits_filter_callback_user_data; + + const whisper_grammar_element ** grammar_rules; + size_t n_grammar_rules; + size_t i_start_rule; + float grammar_penalty; }; ``` There might be some instability around the API, especially with the existing language bindings. I wasn't able to test everything, so expect some issues and feel free to submit PRs with any kind of fixes that you find. ## Highlights and what's next A lot of the updates in these release are possible thanks to the many contributions in [llama.cpp](https://github.com/ggerganov/llama.cpp) - huge shoutout to all the contributors and collaborators there! Regarding future updates to `whisper.cpp`, I'm looking forward to the following things: - Add server example similar to the one in `llama.cpp` - Try to improve Metal's batched decoding performance - Look for some interesting applications of the grammar sampling functionality --- - **Latest performance of the [talk-llama](https://github.com/ggerganov/whisper.cpp/tree/master/examples/talk-llama) example** https://github.com/ggerganov/whisper.cpp/assets/1991296/d97a3788-bf2a-4756-9a43-60c6b391649e ## What's Changed * Fix quantize bug by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/842 * whisper.wasm : fix typo in readme by @BaffinLee in https://github.com/ggerganov/whisper.cpp/pull/832 * Adding --session support in examples/talk-llama by @herrera-luis in https://github.com/ggerganov/whisper.cpp/pull/845 * --detect-language mode by @CRD716 in https://github.com/ggerganov/whisper.cpp/pull/853 * talk-llama: updating session prompts load by @herrera-luis in https://github.com/ggerganov/whisper.cpp/pull/854 * CMake/Makefile : CLBlast support as in llama.cpp by @trholding in https://github.com/ggerganov/whisper.cpp/pull/862 * Instruction: Partial OpenCL GPU support via CLBlast by @trholding in https://github.com/ggerganov/whisper.cpp/pull/863 * Add cuBLAS build workflow and fix error causing lines in CMakeLists by @RelatedTitle in https://github.com/ggerganov/whisper.cpp/pull/867 * cmake : fix options disabling AVX and AVX2 flags by @blazingzephyr in https://github.com/ggerganov/whisper.cpp/pull/885 * Added large-v2. Added instructions on converting to GGML. Added --no-… by @cjheath in https://github.com/ggerganov/whisper.cpp/pull/874 * talk-llama: only copy used KV cache in get / set state by @herrera-luis in https://github.com/ggerganov/whisper.cpp/pull/890 * Fix define used for COREML_ALLOW_FALLBACK by @jcsoo in https://github.com/ggerganov/whisper.cpp/pull/893 * coreml : fix memory leak by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/899 * whisper.objc : enable Core ML in example & fix segmentation fault by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/910 * Align --no-timestamps in help to actual behavior by @Miserlou in https://github.com/ggerganov/whisper.cpp/pull/908 * readme : improve Core ML model conversion guidance by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/915 * Added support of large-v1 model into CoreML by @abCods in https://github.com/ggerganov/whisper.cpp/pull/926 * Update of Hebrew Language Code: 'iw' to 'he' by @ttv20 in https://github.com/ggerganov/whisper.cpp/pull/935 * java bindings by @nalbion in https://github.com/ggerganov/whisper.cpp/pull/931 * ci: Build with any BLAS compatible library by @akharlamov in https://github.com/ggerganov/whisper.cpp/pull/927 * [DOCS] highlight openblas support in https://github.com/ggerganov/whisper.cpp/pull/956 * Update elevenlabs example to use official python API by @DGdev91 in https://github.com/ggerganov/whisper.cpp/pull/837 * Update README.md by @genevera in https://github.com/ggerganov/whisper.cpp/pull/964 * Feature/java bindings2 by @nalbion in https://github.com/ggerganov/whisper.cpp/pull/944 * Support decode wav file has 2 channels. by @geniusnut in https://github.com/ggerganov/whisper.cpp/pull/972 * README.md: Corrected syntax for markdown link by @LarryBattle in https://github.com/ggerganov/whisper.cpp/pull/995 * Make convert-pt-to-ggml.py backwards compatible with older vocab.json tokenizer files by @akashmjn in https://github.com/ggerganov/whisper.cpp/pull/1001 * Fixing Accidental 'exit(0)' and Ensuring Proper 'return 1' in `examples/main/main.cpp` `whisper_params_parse` by @faker2048 in https://github.com/ggerganov/whisper.cpp/pull/1002 * Fix for issue #876 by @burningion in https://github.com/ggerganov/whisper.cpp/pull/1012 * Make cuBLAS compilation compatible with x86 as well as aarch64 by @byte-6174 in https://github.com/ggerganov/whisper.cpp/pull/1015 * feat(golang): improve progress reporting and callback handling by @appleboy in https://github.com/ggerganov/whisper.cpp/pull/1024 * Add support for whisper_full_lang_id() to go bindings by @jaybinks in https://github.com/ggerganov/whisper.cpp/pull/1010 * Add alternative java binding to readme by @GiviMAD in https://github.com/ggerganov/whisper.cpp/pull/1029 * diarization: add diarization support for all current output types by @colinc in https://github.com/ggerganov/whisper.cpp/pull/1031 * Fix cd statements to allow spaces in model path by @roddurd in https://github.com/ggerganov/whisper.cpp/pull/1041 * adding ggml_to_pt script by @simonMoisselin in https://github.com/ggerganov/whisper.cpp/pull/1042 * whisper: Fix build with -Werror=undef by @philn in https://github.com/ggerganov/whisper.cpp/pull/1045 * Fix talk-llama build after ggml sync (commit 5feb0dffbae5). by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1049 * Do not use _GNU_SOURCE gratuitously. by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1027 * whisper : `split_on_word` no longer trims by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1046 * Updated 'quantize-all.sh' to quantize all downloaded models by @thefinaldegree in https://github.com/ggerganov/whisper.cpp/pull/1054 * Fix talk-llama build on macOS. by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1062 * whisper : support speaker segmentation (local diarization) of mono audio via tinydiarize by @akashmjn in https://github.com/ggerganov/whisper.cpp/pull/1058 * Minor: updated readme by @mwarnaar in https://github.com/ggerganov/whisper.cpp/pull/1064 * OpenVINO support by @RyanMetcalfeInt8 in https://github.com/ggerganov/whisper.cpp/pull/1037 * go bindings: fix context.Process call in examples by @mvrilo in https://github.com/ggerganov/whisper.cpp/pull/1067 * go: Call SetDuration appropriately by @tmc in https://github.com/ggerganov/whisper.cpp/pull/1077 * Multi platforms CI by @alonfaraj in https://github.com/ggerganov/whisper.cpp/pull/1101 * Add Vim plugin by @AustinMroz in https://github.com/ggerganov/whisper.cpp/pull/1131 * chore: move progress calculation out of whisper.cpp by @geekodour in https://github.com/ggerganov/whisper.cpp/pull/1081 * expose api to let user control log output by @evmar in https://github.com/ggerganov/whisper.cpp/pull/1060 * Add a larger (30min) sample by @vadi2 in https://github.com/ggerganov/whisper.cpp/pull/1092 * Sync opencl compilation fix in ggml by @goncha in https://github.com/ggerganov/whisper.cpp/pull/1111 * README.md: Add OpenVINO support details by @RyanMetcalfeInt8 in https://github.com/ggerganov/whisper.cpp/pull/1112 * Fix MSVC compile error C3688 on non-unicode Windows by @goncha in https://github.com/ggerganov/whisper.cpp/pull/1110 * Now make tests can be called as make tests base.en by @Jerry-Master in https://github.com/ggerganov/whisper.cpp/pull/1113 * Go binding: Implement SetSplitOnWord by @xdrudis in https://github.com/ggerganov/whisper.cpp/pull/1114 * set NVCC -arch flag by cuda version by @alonfaraj in https://github.com/ggerganov/whisper.cpp/pull/1115 * Fix CLBlast build on MacOS by @iceychris in https://github.com/ggerganov/whisper.cpp/pull/1120 * Fixed the issue of OpenBLAS not being enabled on Windows. by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1128 * whisper : fix visibility warning of struct whisper_full_params by declaring in advance by @IronBlood in https://github.com/ggerganov/whisper.cpp/pull/1124 * Fix MSVC compile error C3688 by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1136 * Add tinydiarization support for streaming by @DMcConnell in https://github.com/ggerganov/whisper.cpp/pull/1137 * quantize : fix load vocab crash when len is 128 by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1160 * Fix AVX etc. under GCC/CMake by @marmistrz in https://github.com/ggerganov/whisper.cpp/pull/1174 * Fix PowerPC build failures introduced in #1174 by @marmistrz in https://github.com/ggerganov/whisper.cpp/pull/1196 * Simplify Makefile by @alonfaraj in https://github.com/ggerganov/whisper.cpp/pull/1147 * Add precalculated values of sin/cos for speeding up FFT by @AlexandrGraschenkov in https://github.com/ggerganov/whisper.cpp/pull/1142 * Make build work on Linux machines supporting AVX1 not AVX2 by @lachesis in https://github.com/ggerganov/whisper.cpp/pull/1162 * Fix OpenBLAS detection under Arch Linux by @marmistrz in https://github.com/ggerganov/whisper.cpp/pull/1173 * Minor fixes by @csukuangfj in https://github.com/ggerganov/whisper.cpp/pull/1154 * New command line option by @jbyunes in https://github.com/ggerganov/whisper.cpp/pull/1205 * whisper.android : migrate from ndk-build to CMake by @JunkFood02 in https://github.com/ggerganov/whisper.cpp/pull/1204 * Significantly improve whisper.cpp inference quality by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1148 * whisper : allow whisper_full from mel spectrogram - no audio by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1214 * ROCm Port by @ardfork in https://github.com/ggerganov/whisper.cpp/pull/1209 * Improvements to vim plugin and LSP server by @AustinMroz in https://github.com/ggerganov/whisper.cpp/pull/1144 * Detect SSSE3 by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1211 * ggml : fix compiling when SSE3 is available but not SSSE3 by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1210 * make : add support for building on DragonFlyBSD/NetBSD/OpenBSD by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1212 * make : use cpuinfo in MSYS2 to enable x86 ISA extensions on the host by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1216 * Fix CoreML memleak (fixes #1202) by @denersc in https://github.com/ggerganov/whisper.cpp/pull/1218 * whisper.android : fix cmake multiple libraries build by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1224 * Fix compilation errors incurred by -Werror by @shivamidow in https://github.com/ggerganov/whisper.cpp/pull/1227 * ci : enable java package publishing by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1228 * fix cmake commands in README #1225 by @wizardforcel in https://github.com/ggerganov/whisper.cpp/pull/1231 * ggml : sync (ggml-alloc, GPU, eps, etc.) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1220 * make : improve cpuinfo handling on x86 hosts by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1238 * ggml : sync latest llama.cpp (view_src + alloc improvements) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1247 * Posixify pagesize. by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1251 * Fix detection of AVX2 on macOS by @didzis in https://github.com/ggerganov/whisper.cpp/pull/1250 * Address ARM's big.LITTLE arch by checking cpu info. by @Digipom in https://github.com/ggerganov/whisper.cpp/pull/1254 * Bump gradle plugin and dependencies + a lint pass by @Digipom in https://github.com/ggerganov/whisper.cpp/pull/1255 * Add quantized models to download-ggml-model.sh by @nchudleigh in https://github.com/ggerganov/whisper.cpp/pull/1235 * Do not use _GNU_SOURCE gratuitously. by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1129 * ci : upgrade gradle to 2.4.2 by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1263 * sync : ggml (HBM + Metal + style) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1264 * ci : try to fix gradle action by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1265 * Fixed signing of java artifact using gradle by @nalbion in https://github.com/ggerganov/whisper.cpp/pull/1267 * Faster `beam_search` sampling by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1243 * whisper : fix bench regression by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1275 * whisper : Metal and ggml-alloc support by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1270 * bench: fix missing include by @nekr0z in https://github.com/ggerganov/whisper.cpp/pull/1303 * ruby : fix build by add missing ggml-alloc by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1305 * Update README.md. Adding missing options, remove `--speed-up`. by @Sogl in https://github.com/ggerganov/whisper.cpp/pull/1306 * Update README.md by @computerscienceiscool in https://github.com/ggerganov/whisper.cpp/pull/1290 * save the recorded audio to a file by @litongjava in https://github.com/ggerganov/whisper.cpp/pull/1310 * Python benchmark script by @nchudleigh in https://github.com/ggerganov/whisper.cpp/pull/1298 * Minor: fix example talk readme gpt-2 github url by @brunofaustino in https://github.com/ggerganov/whisper.cpp/pull/1334 * Missing speaker turn function in API by @didzis in https://github.com/ggerganov/whisper.cpp/pull/1330 * examples: Move wav_writer from stream.cpp to common.h by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1317 * Better abort callback by @mkiol in https://github.com/ggerganov/whisper.cpp/pull/1335 * Add conversion scripts from HuggingFace models to CoreML by @AlienKevin in https://github.com/ggerganov/whisper.cpp/pull/1304 * Prefer pkg-config while looking for BLAS by @marmistrz in https://github.com/ggerganov/whisper.cpp/pull/1349 * Abort build if a feature was requested and could not be configured by @marmistrz in https://github.com/ggerganov/whisper.cpp/pull/1350 * Abort callback improvements by @mkiol in https://github.com/ggerganov/whisper.cpp/pull/1345 * Dockerfile for cublas by @joecryptotoo in https://github.com/ggerganov/whisper.cpp/pull/1286 * docs: fix typo by @jorismertz in https://github.com/ggerganov/whisper.cpp/pull/1362 * Expose the audio_ctx param through the Go binding by @JohanRaffin in https://github.com/ggerganov/whisper.cpp/pull/1368 * Clarify doc about where to compile from by @ai-at-home in https://github.com/ggerganov/whisper.cpp/pull/1400 * Faster download for models on windows using BitTransfer by @WhiteOlivierus in https://github.com/ggerganov/whisper.cpp/pull/1404 * JSON: allow outputting per-token data too by @akx in https://github.com/ggerganov/whisper.cpp/pull/1358 * Move up-to-date demo to top by @asadm in https://github.com/ggerganov/whisper.cpp/pull/1417 * Use absolute paths for the converted OpenVINO model by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1356 * sync : ggml (backend v2, k-quants, CUDA opts, Metal opts, etc.) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1422 * whisper : add support for new distilled Whisper models by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1424 * whisper : add context param for disable gpu by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1293 * talk-llama : fix n_gpu_layers usage by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1441 * talk-llama : fix n_gpu_layers usage again by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/1442 * Fix variable names in GitHub actions config by @iamthad in https://github.com/ggerganov/whisper.cpp/pull/1440 * Reset ctx->t_start_us when calling whisper_reset_timings() by @bjnortier in https://github.com/ggerganov/whisper.cpp/pull/1434 * Decouple Android example into a library and app module by @tobrun in https://github.com/ggerganov/whisper.cpp/pull/1445 * whisper : add support for large v3 by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1444 * Add support for Swift Package Manager by @sindresorhus in https://github.com/ggerganov/whisper.cpp/pull/1370 * Reset mel time when resetting timings by @bjnortier in https://github.com/ggerganov/whisper.cpp/pull/1452 * coreml: use the correct n_mel by @jxy in https://github.com/ggerganov/whisper.cpp/pull/1458 * models : Fix `n_mel` mismatch in convert-whisper-to-openvino.py by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1459 * Add '-l auto' to talk-llama example by @kubaracek in https://github.com/ggerganov/whisper.cpp/pull/1467 * Return with error from whisper_encode_internal and whisper_decode_int… by @bjnortier in https://github.com/ggerganov/whisper.cpp/pull/1456 * whisper : add full CUDA and Metal offloading by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1472 * examples : Enhanced compatibility with older Android versions using Java by @litongjava in https://github.com/ggerganov/whisper.cpp/pull/1382 * Add n_gpu_layers option to talk-llama example by @rlapray in https://github.com/ggerganov/whisper.cpp/pull/1475 * whisper : add grammar-based sampling by @ejones in https://github.com/ggerganov/whisper.cpp/pull/1229 * java : use tiny.en for tests by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1484 * whisper : add batched decoding by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1486 * java : fix test by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1492 * whisper : make large version explicit + fix data size units by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1493 ## New Contributors * @BaffinLee made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/832 * @herrera-luis made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/845 * @CRD716 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/853 * @trholding made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/862 * @RelatedTitle made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/867 * @blazingzephyr made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/885 * @cjheath made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/874 * @jcsoo made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/893 * @Miserlou made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/908 * @abCods made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/926 * @ttv20 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/935 * @nalbion made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/931 * @akharlamov made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/927 * @geniusnut made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/972 * @LarryBattle made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/995 * @akashmjn made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1001 * @faker2048 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1002 * @burningion made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1012 * @byte-6174 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1015 * @appleboy made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1024 * @jaybinks made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1010 * @GiviMAD made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1029 * @colinc made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1031 * @roddurd made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1041 * @simonMoisselin made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1042 * @philn made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1045 * @przemoc made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1049 * @thefinaldegree made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1054 * @mwarnaar made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1064 * @RyanMetcalfeInt8 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1037 * @mvrilo made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1067 * @tmc made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1077 * @alonfaraj made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1101 * @AustinMroz made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1131 * @geekodour made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1081 * @evmar made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1060 * @vadi2 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1092 * @goncha made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1111 * @Jerry-Master made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1113 * @xdrudis made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1114 * @iceychris made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1120 * @bobqianic made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1128 * @IronBlood made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1124 * @DMcConnell made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1137 * @marmistrz made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1174 * @AlexandrGraschenkov made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1142 * @lachesis made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1162 * @csukuangfj made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1154 * @jbyunes made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1205 * @JunkFood02 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1204 * @ardfork made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1209 * @denersc made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1218 * @shivamidow made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1227 * @wizardforcel made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1231 * @didzis made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1250 * @nchudleigh made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1235 * @nekr0z made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1303 * @Sogl made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1306 * @computerscienceiscool made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1290 * @litongjava made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1310 * @brunofaustino made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1334 * @mkiol made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1335 * @AlienKevin made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1304 * @joecryptotoo made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1286 * @jorismertz made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1362 * @JohanRaffin made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1368 * @ai-at-home made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1400 * @WhiteOlivierus made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1404 * @akx made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1358 * @asadm made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1417 * @iamthad made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1440 * @bjnortier made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1434 * @tobrun made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1445 * @sindresorhus made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1370 * @jxy made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1458 * @kubaracek made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1467 * @rlapray made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1475 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.4.0...v1.5.0
v1.4.3
3 weeks ago
This is a minor release, the main reason for which is that there hasn't been an official release for a few months now and some small things have accumulated on the `master` branch that would be nice to be upstreamed. I am planning a major `v1.5.0` release with some new and long-waited functionality soon: - Full CUDA offloading - Efficient Beam-Search implementation - Grammar support The current version `v1.4.3` should be considered in beta as I haven't worked intensively on `whisper.cpp` recently and there might be some issues that made their way in the code. I'll try to polish things in the next days and prepare a stable `v1.5.0` release. In the meantime, any feedback will be highly appreciated. ***Detailed API changes, features and new contributor recognitions will be included in the `v1.5.0` release.***
v1.4.0
30 weeks ago
## Overview This is a new major release adding **integer quantization** and **partial GPU (NVIDIA)** support ### Integer quantization This allows the `ggml` Whisper models to be converted from the default 16-bit floating point weights to 4, 5 or 8 bit integer weights. The resulting quantized models are smaller in disk size and memory usage and can be processed faster on some architectures. The transcription quality is degraded to some extend - not quantified at the moment. - Supported quantization modes: `Q4_0`, `Q4_1`, `Q4_2`, `Q5_0`, `Q5_1`, `Q8_0` - Implementation details: https://github.com/ggerganov/whisper.cpp/pull/540 - Usage instructions: [README](https://github.com/ggerganov/whisper.cpp#quantization) - All WASM examples now support `Q5` quantized models: https://whisper.ggerganov.com Here is a quantitative evaluation of the different quantization modes applied to the [LLaMA](https://github.com/facebookresearch/llama) and [RWKV](https://github.com/BlinkDL/RWKV-LM) large language models. These results can give an impression about the expected quality, size and speed for quantized Whisper models: #### LLaMA quantization (measured on M1 Pro) | Model | Measure | F16 | Q4_0 | Q4_1 | Q4_2 | Q5_0 | Q5_1 | Q8_0 | |------:|--------------|-------:|-------:|-------:|-------:|-------:|-------:|-------:| | 7B | perplexity | 5.9565 | 6.2103 | 6.1286 | 6.1698 | 6.0139 | 5.9934 | 5.9571 | | 7B | file size | 13.0G | 4.0G | 4.8G | 4.0G | 4.4G | 4.8G | 7.1G | | 7B | ms/tok @ 4th | 128 | 56 | 61 | 84 | 91 | 95 | 75 | | 7B | ms/tok @ 8th | 128 | 47 | 55 | 48 | 53 | 59 | 75 | | 7B | bits/weight | 16.0 | 5.0 | 6.0 | 5.0 | 5.5 | 6.0 | 9.0 | | 13B | perplexity | 5.2455 | 5.3748 | 5.3471 | 5.3433 | 5.2768 | 5.2582 | 5.2458 | | 13B | file size | 25.0G | 7.6G | 9.1G | 7.6G | 8.4G | 9.1G | 14G | | 13B | ms/tok @ 4th | 239 | 104 | 113 | 160 | 176 | 185 | 141 | | 13B | ms/tok @ 8th | 240 | 85 | 99 | 97 | 108 | 117 | 147 | | 13B | bits/weight | 16.0 | 5.0 | 6.0 | 5.0 | 5.5 | 6.0 | 9.0 | ref: https://github.com/ggerganov/llama.cpp#quantization #### RWKV quantization | Format | Perplexity (169M) | Latency, ms (1.5B) | File size, GB (1.5B) | |-----------|-------------------|--------------------|----------------------| | `Q4_0` | 17.507 | *76* | **1.53** | | `Q4_1` | 17.187 | **72** | 1.68 | | `Q4_2` | 17.060 | 85 | **1.53** | | `Q5_0` | 16.194 | 78 | *1.60* | | `Q5_1` | 15.851 | 81 | 1.68 | | `Q8_0` | *15.652* | 89 | 2.13 | | `FP16` | **15.623** | 117 | 2.82 | | `FP32` | **15.623** | 198 | 5.64 | ref: https://github.com/ggerganov/ggml/issues/89#issuecomment-1528781992 This feature is possible thanks to the many contributions in the [llama.cpp](https://github.com/ggerganov/llama.cpp) project: https://github.com/users/ggerganov/projects/2 ### GPU support via cuBLAS Using cuBLAS results mainly in improved Encoder inference speed. I haven't done proper timings, but one can expect at least 2-3 times faster Encoder evaluation with modern NVIDIA GPU cards compared to CPU-only processing. Feel free to post your Encoder benchmarks in issue #89. - Implementation details: https://github.com/ggerganov/whisper.cpp/pull/834 - Usage instructions: [README](https://github.com/ggerganov/whisper.cpp#nvidia-gpu-support-via-cublas) This is another feature made possible by the [llama.cpp](https://github.com/ggerganov/llama.cpp) project. Special recognition to @slaren for putting almost all of this work together --- This release remains in "beta" stage as I haven't verified that everything works as expected. ## What's Changed * Updated escape_double_quotes() Function by @tauseefmohammed2 in https://github.com/ggerganov/whisper.cpp/pull/776 * examples : add missing #include <cstdint> by @pH5 in https://github.com/ggerganov/whisper.cpp/pull/798 * Flush upon finishing inference by @tarasglek in https://github.com/ggerganov/whisper.cpp/pull/811 * Escape quotes in csv output by @laytan in https://github.com/ggerganov/whisper.cpp/pull/815 * C++11style by @wuyudi in https://github.com/ggerganov/whisper.cpp/pull/768 * Optionally allow a Core ML build of Whisper to work with or without Core ML models by @Canis-UK in https://github.com/ggerganov/whisper.cpp/pull/812 * add some tips about in the readme of the android project folder by @Zolliner in https://github.com/ggerganov/whisper.cpp/pull/816 * whisper: Use correct seek_end when offset is used by @ThijsRay in https://github.com/ggerganov/whisper.cpp/pull/833 * ggml : fix 32-bit ARM NEON by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/836 * Add CUDA support via cuBLAS by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/834 * Integer quantisation support by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/540 ## New Contributors * @tauseefmohammed2 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/776 * @pH5 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/798 * @tarasglek made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/811 * @laytan made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/815 * @wuyudi made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/768 * @Canis-UK made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/812 * @Zolliner made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/816 * @ThijsRay made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/833 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.3.0...v1.4.0
v1.3.0
32 weeks ago
## Overview This release should be considered in Beta stage, since I haven't done a lot of testing and I am not sure if I didn't break something. But overall, I believe both the performance and the quality are improved. - Added Core ML support #566 - Restored decoding fallbacks with default size of 2 instead of 5 (f19e23fbd108ec3ac458c7a19b31c930719e7a94) - Pad the audio with zeros instead of the spectrogram (5108b30e6daf361c856abb6b86e5038500bdbeb1) - Added [talk-llama](https://github.com/ggerganov/whisper.cpp/tree/master/examples/talk-llama) example - Added `whisper_state` which allows parallel transcriptions with a single model in memory (#523) The C-style API has been extended significantly to support the new `whisper_state`, but in general should be backwards compatible. The only breaking change is in the callbacks signatures. Please provide feedback in the discussion if you observe any issues. The next release `v1.4.0` will follow up relatively soon and will provide 4-bit integer quantization support. ## What's Changed * update csv output format to match OpenAI's Whisper dataframe output by @hykelvinlee42 in https://github.com/ggerganov/whisper.cpp/pull/552 * Go binding: NewContext now returns a clean context by @polarmoon in https://github.com/ggerganov/whisper.cpp/pull/537 * Added whisper state + default state on the whisper_context by @sandrohanea in https://github.com/ggerganov/whisper.cpp/pull/523 * whisper.android: Enable fp16 instrinsics (FP16_VA) which is supported by ARMv8.2 or later. by @tinoue in https://github.com/ggerganov/whisper.cpp/pull/572 * Add quality comparison helper by @venkr in https://github.com/ggerganov/whisper.cpp/pull/569 * whisper.android: Support benchmark for Android example. by @tinoue in https://github.com/ggerganov/whisper.cpp/pull/542 * Fix MUSL Linux build by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/576 * Change default encoding to UTF-8 by @Kamilake in https://github.com/ggerganov/whisper.cpp/pull/605 * Provide option for creating JSON output by @tuxpoldo in https://github.com/ggerganov/whisper.cpp/pull/615 * readme : add react-native bindings by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/619 * Fixed language auto-detection for state provided processing. by @sandrohanea in https://github.com/ggerganov/whisper.cpp/pull/627 * xcodeproj : add `-O3 -DNDEBUG` in release mode by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/640 * Nodejs Addon blocking main thread. Implemented Napi::AsyncWorker by @LucasZNK in https://github.com/ggerganov/whisper.cpp/pull/642 * Include link to R wrapper in README by @jwijffels in https://github.com/ggerganov/whisper.cpp/pull/626 * Add a cmake flag to disable F16C by @a5huynh in https://github.com/ggerganov/whisper.cpp/pull/628 * Add talk-llama example by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/664 * Add Alpaca support to talk-llama example by @ejones in https://github.com/ggerganov/whisper.cpp/pull/668 * Update README.md by @razodactyl in https://github.com/ggerganov/whisper.cpp/pull/682 * issue #470 - working 32-bit ARM by @clach04 in https://github.com/ggerganov/whisper.cpp/pull/486 * whisper : add initial_prompt param by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/645 * fix typo in JSON output by @egorFiNE in https://github.com/ggerganov/whisper.cpp/pull/648 * Fix shell script ./models/download-ggml-model.sh to handle spaces and special characters in paths by @be-next in https://github.com/ggerganov/whisper.cpp/pull/677 * Fixed test to new async implementation by @LucasZNK in https://github.com/ggerganov/whisper.cpp/pull/686 * Minor: fixing usage message for talk-llama by @InconsolableCellist in https://github.com/ggerganov/whisper.cpp/pull/687 * Small typo by @ZiggerZZ in https://github.com/ggerganov/whisper.cpp/pull/688 * feat: add progress callback by @pajowu in https://github.com/ggerganov/whisper.cpp/pull/600 * ggml : fix q4_1 dot product types by @novag in https://github.com/ggerganov/whisper.cpp/pull/759 * Exposed various parts to the Go Interface by @bmurray in https://github.com/ggerganov/whisper.cpp/pull/697 * Adds shell command example for --print-colors by @bocytko in https://github.com/ggerganov/whisper.cpp/pull/710 * Makefile: disable avx in case f16c is not available by @duthils in https://github.com/ggerganov/whisper.cpp/pull/706 * Making the quick start instructions clearer. by @Onlyartist9 in https://github.com/ggerganov/whisper.cpp/pull/716 * Add lrc output support by @WhichWho in https://github.com/ggerganov/whisper.cpp/pull/718 * Corrects default speak.sh path in talk-llama by @mab122 in https://github.com/ggerganov/whisper.cpp/pull/720 * Add msvc compiler args /utf-8 fix error C3688 by @WhichWho in https://github.com/ggerganov/whisper.cpp/pull/721 * Changed convert-pt-to-ggml.py to use .tiktoken tokenizer files by @ivan-gorin in https://github.com/ggerganov/whisper.cpp/pull/725 * talk/talk-llama: add basic example script for eleven-labs tts by @DGdev91 in https://github.com/ggerganov/whisper.cpp/pull/728 * readme : add Unity3d bindings by @Macoron in https://github.com/ggerganov/whisper.cpp/pull/733 * Update stream.cpp by @AliAlameh in https://github.com/ggerganov/whisper.cpp/pull/501 * Fix typos in whisper.h by @GitAritron in https://github.com/ggerganov/whisper.cpp/pull/737 * Update LICENSE by @masguit42 in https://github.com/ggerganov/whisper.cpp/pull/739 * fix potential memory leaks by @baderouaich in https://github.com/ggerganov/whisper.cpp/pull/740 * readme: Add alternate swift bindings by @exPHAT in https://github.com/ggerganov/whisper.cpp/pull/755 * Fix the bug related to word splitting errors in the "tokenize" function. by @AfryMask in https://github.com/ggerganov/whisper.cpp/pull/760 * Do not launch threads for `log_mel_spectrogram` when singlethreaded by @maxilevi in https://github.com/ggerganov/whisper.cpp/pull/763 * Core ML support by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/566 * ggml : fix build on whisper.android (ARM_NEON) by @jhen0409 in https://github.com/ggerganov/whisper.cpp/pull/764 ## New Contributors * @hykelvinlee42 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/552 * @tinoue made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/572 * @venkr made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/569 * @Kamilake made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/605 * @tuxpoldo made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/615 * @jhen0409 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/619 * @LucasZNK made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/642 * @jwijffels made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/626 * @a5huynh made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/628 * @ejones made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/668 * @razodactyl made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/682 * @clach04 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/486 * @egorFiNE made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/648 * @be-next made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/677 * @InconsolableCellist made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/687 * @ZiggerZZ made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/688 * @pajowu made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/600 * @novag made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/759 * @bmurray made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/697 * @bocytko made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/710 * @duthils made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/706 * @Onlyartist9 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/716 * @WhichWho made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/718 * @mab122 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/720 * @ivan-gorin made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/725 * @DGdev91 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/728 * @Macoron made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/733 * @AliAlameh made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/501 * @GitAritron made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/737 * @masguit42 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/739 * @baderouaich made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/740 * @exPHAT made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/755 * @AfryMask made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/760 * @maxilevi made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/763 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.2.1...v1.3.0
v1.2.1
39 weeks ago
## Overview This is a minor release. The main reason for it is a critical bug fix that causes the software to crash randomly when the language auto-detect option is used (i.e. `whisper_lang_auto_detect()`). Other than that, the release includes refactoring of the examples, ruby bindings and some minor changes to the C API. You can provide feedback in the existing [v1.2.0 discussion](https://github.com/ggerganov/whisper.cpp/discussions/467). ## What's Changed #### Core `ggml` / `whisper` * `whisper` : whisper : add "split_on_word" flag when using using "max_len" option by @mightymatth in #455 and @boolemancer in https://github.com/ggerganov/whisper.cpp/pull/476 * `whisper` : add whisper_full_lang_id() for getting the context lang by @kamranjon in https://github.com/ggerganov/whisper.cpp/pull/461 * `whisper` : fixed Beam Search Strategy and exposed whisper_pcm_to_mel_phase_vocoder by @sandrohanea in https://github.com/ggerganov/whisper.cpp/pull/474 * `whisper` : suppress non-speech-related token outputs by @shibukazu in https://github.com/ggerganov/whisper.cpp/pull/473 * `cmake` : install whisper.h header by @aviks in https://github.com/ggerganov/whisper.cpp/pull/485 * `whisper` : fix signedness compiler warning by @shikokuchuo in https://github.com/ggerganov/whisper.cpp/pull/506 * `whisper` : by default disable non-speech tokens suppression #473 * `whisper` : add API for applying custom logits filters during decoding 0d229163bbea769c7a3e0e500e45850c9a6e2e42 * `whisper` : fix uninitialized `exp_n_audio_ctx` by @Finnvoor in https://github.com/ggerganov/whisper.cpp/pull/520 #### Bindings * `bindings` : add Ruby by @taf2 in https://github.com/ggerganov/whisper.cpp/pull/500 * `readme` : add .NET repos (#303) * `readme` : add cython bindings (#9) * `readme` : add pybind11 bindings by @aarnphm in https://github.com/ggerganov/whisper.cpp/pull/538 #### Examples * `ci` : add node addon test and optimize compilation configuration by @chenqianhe in https://github.com/ggerganov/whisper.cpp/pull/468 * `yt-wsp.sh` : add unique filename generation by @genevera in https://github.com/ggerganov/whisper.cpp/pull/495 * `examples` : refactor in order to reuse code and reduce duplication by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/482 * `main` : fix stdin pipe stream by @conradg in https://github.com/ggerganov/whisper.cpp/pull/503 * `make` : add "-mcpu=native" when building for aarch64 (#532) #### C-style API * Add `whisper_pcm_to_mel_phase_vocoder()` * Add `*(whisper_logits_filter_callback)()` * Change `struct whisper_full_params` * Add `whisper_full_lang_id()` ## New Contributors * @mightymatth made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/455 * @kamranjon made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/461 * @sandrohanea made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/474 * @shibukazu made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/473 * @genevera made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/495 * @shikokuchuo made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/506 * @conradg made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/503 * @taf2 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/500 * @Finnvoor made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/520 * @aarnphm made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/538 * @FlippFuzz made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/532 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.2.0...v1.2.1 ## Highlights Recently, I have been making progress on adding integer quantisation support in the `ggml` tensor library. This will eventually allow to use quantised models which require less memory and will hopefully run faster. I think the next major release `v1.3.0` will officially add quantisation support. For now, you can keep track of the progress in #540 --- - **🎙️ MacWhisper by @jordibruin powered by whisper.cpp** https://goodsnooze.gumroad.com/l/macwhisper <div align="center"> <a href="https://goodsnooze.gumroad.com/l/macwhisper"><img width="1663" alt="image" src="https://user-images.githubusercontent.com/1991296/223670514-5b482ec2-bee3-44c9-b90f-724da750cdf3.png"></a> </div>
v1.2.0
42 weeks ago
## Overview In this release we significantly reduce the memory usage during inference by introducing "scratch" buffers to `ggml`. The new memory requirements per model are as follows: | Model | Disk | Mem (Old) | Mem (New) | | --- | --- | --- | --- | | tiny | 75 MB | ~390 MB | ~125 MB | | base | 142 MB | ~500 MB | ~210 MB | | small | 466 MB | ~1.0 GB | ~600 MB | | medium | 1.5 GB | ~2.6 GB | ~1.7 GB | | large | 2.9 GB | ~4.7 GB | ~3.3 GB | It's a simple idea that instead of creating a new memory buffer for each new tensor in the computation, we reuse the memory of old tensors that are no longer needed. The implementation is in PR #431. It's not very clean - I think there is some better way to do this, but for now it will work. Additionally, there might be some inference speed improvements on Apple Silicon in the Decoder part of the transformer. I haven't done proper benchmarks, but seems there is about ~30% performance boost. The results are identical to `v1.1.1`. ## What's Changed #### Core `ggml` / `whisper` * `whisper` : PPC64 big-endian support by @fitzsim in https://github.com/ggerganov/whisper.cpp/pull/398 * `whisper` : condition sampled timestamp tokens to be monotonically increasing by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/425 * `wasm` : fix typo in helper.js by @bhbs in https://github.com/ggerganov/whisper.cpp/pull/459 * `ggml`/`whisper` : reduce memory usage during inference by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/431 #### Bindings * `ci` : run workflows on pull requests + bindings depend on .h by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/446 * `go` : added wrappers to reset and print timings by @glaslos in https://github.com/ggerganov/whisper.cpp/pull/436 * `go` : add WhisperLangAutoDetect method to go binding by @RobinXL in https://github.com/ggerganov/whisper.cpp/pull/451 * `go` : add wrapper for system info by @glaslos in https://github.com/ggerganov/whisper.cpp/pull/456 * `go` : support "auto" as an option when set language by @polarmoon in https://github.com/ggerganov/whisper.cpp/pull/462 #### Examples * `whisper.wasm` : add labels for easier radio selection by @kokes in https://github.com/ggerganov/whisper.cpp/pull/435 * `livestream.sh` : run main with model arg instead of default by @EricTendian in https://github.com/ggerganov/whisper.cpp/pull/453 * `main` : CSV format export trimmed spaces fix by @alex-bacart in https://github.com/ggerganov/whisper.cpp/pull/444 * `addon.node` : using whisper as a Node.js addon by @chenqianhe in https://github.com/ggerganov/whisper.cpp/pull/443 ## New Contributors * @kokes made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/435 * @glaslos made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/436 * @EricTendian made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/453 * @RobinXL made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/451 * @alex-bacart made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/444 * @bhbs made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/459 * @polarmoon made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/462 * @chenqianhe made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/443 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.1.1...v1.2.0 ## Highlights I'll use these release notes to write some random thoughts about the project - sort of a short blog post. I'm really happy with how `whisper.cpp` turned out to be so far. There is a very positive reception in the ML community - most people seem to be excited by the simplicity of the implementation and the fact that it is quite self-contained. I receive a lot of questions about the project and about various ideas that it can be applied to. I really enjoy it and I try to respond to everyone! I also find it very satisfying that there are so many contributions already happening by so many people. To me this illustrates the power of open-source collaboration. The contributions not only improve the functionality and the quality of the code, but also help to generate various new ideas and approaches to explore. Another interesting thing is that the project keeps on giving. Every time I start to think that now is a good time to put it in the background for a while and focus on other stuff, some new cool idea pops up and I can't help but start working on it. Having this custom implementation allows me to interact with the model on a lower level which opens some interesting ways to explore it. So far the development has been focused on improving the performance, expanding the platform coverage and having robust decoding strategies with a variety of examples. During this time, there have been several ideas that accumulated over-time which I find interesting to explore (diarization, token-level timestamps, improved timestamp accuracy, etc). I think I'll try to focus more on these in the future and see if I can achieve something interesting. --- - **Windows port of `whisper.cpp` utilising vendor-agnostic GPGPU based on DirectCompute by @Const-me** https://github.com/Const-me/Whisper --- - **"The New Yorker" article featuring `whisper.cpp`** <div align="center"> <h2><a href="https://www.newyorker.com/tech/annals-of-technology/whispers-of-ais-modular-future">Whispers of A.I.’s Modular Future</a></h2> <a href="https://www.newyorker.com/tech/annals-of-technology/whispers-of-ais-modular-future"><img width="1663" alt="image" src="https://media.newyorker.com/photos/63d93e688b2aff35d30ef8e2/master/w_2560,c_limit/Somers_final.jpg"></a> </div>
v1.1.1
44 weeks ago
## Overview Since the [v1.1.0](https://github.com/ggerganov/whisper.cpp/releases/tag/v1.1.0) pre-release there have been several reports of improved transcription quality. Together with my observations, I think we can declare version `v1.1.1` as "stable". There were actually a couple of bug-fixes implemented since `v1.1.0`, so make sure to update to `v1.1.1` for optimal results. Another update is that the prototype for [v1.2.0](https://github.com/ggerganov/whisper.cpp/discussions/126) is almost ready: https://github.com/ggerganov/whisper.cpp/pull/431 Initial results indicate that the memory usage can be reduced by a factor of 2-3 for the smaller models. You can provide feedback in the existing [v1.1.0 discussion](https://github.com/ggerganov/whisper.cpp/discussions/408). ## What's Changed #### Core `ggml` / `whisper` * `whisper` : perform entropy check only when we have at least 32 tokens 1a91c19af929d6dc614a9f3b03026fb23be002a6 * `whisper` : fix condition for providing past prompt (critical) 78f166174f126345ed87cc8f6941af1905c4a0f2 #### Bindings * `go` : remove `sample_best` and `sample_timestamp` bindings by @Trojan295 in https://github.com/ggerganov/whisper.cpp/pull/409 #### Examples * `main` : re-enable temperature fallback f583e2d2f5a60e6ebf5bb2819ba4c4d348d41ea2 * `main` : add an option to accept optional output filenames by @garychia in https://github.com/ggerganov/whisper.cpp/pull/424 * `whisper.android` : use AssetManager for Android by @Digipom in https://github.com/ggerganov/whisper.cpp/pull/415 * `whisper.wasm` : add small and small.en models 206fc93396936725bd362c93796cfdc8a87f8509 * `bench` : add memcpy and ggml_mul_mat benchmarks (experimental) 1290fc64572f434f2f36721d2e2b0913cec0178a ## New Contributors * @Trojan295 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/409 * @garychia made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/424 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.1.0...v1.1.1
v1.1.0
45 weeks ago
## Overview The major change in this pre-release is the improved decoding implementation in `whisper.cpp`: - Support for average logprob and entropy based criteria for fallback - Support for temperature `T > 0` - Improved Greedy decoder via `best_of` parameter for `T > 0` - Add beam search decoding (a.k.a `beam_size`) More information about the decoding changes can be found in #291 Additionally, there are a few performance improvements for Apple Silicon, WASM and non-F16C platforms. Support for POWER9 architectures has been added. The reason that this is a pre-release and not an official release is that the new implementation has not been sufficiently tested yet and the existing bindings for other languages have not been updated to support the API changes. The official release `1.1.x` will be created when there is enough feedback about the new decoding implementation and when the bindings have been updated. So make sure to send your feedback in the [discussion](https://github.com/ggerganov/whisper.cpp/discussions/408) created for this pre-release. For now, the `1.0.4` release should be considered more stable. ## What's Changed #### Core `ggml` / `whisper` * `ggml` : POWER9 support by @fitzsim in #320, #349, #369 * `ggml` : simplify the SIMD code by @ggerganov in #324 * `ggml` : add SSE3 and fp16 conversion lookup table by @abitofevrything in #368 * `ggml` : utilise Accelerate's vDSP for some computations d51fc3ee0a0038cdf1522ca3d58b58299de41eb8 * `ggml` : speed-up softmax compute via Accelerate and loop unrolling d61d55cd4b9fe77511c8eea28d0220ce552f7008 * `ggml` : do not start extra threads when using BLAS d347a59a5f224f6a5ab0084ec95715451972d3b0 * `whisper` : do sample_to_timestamp calculation with 64 bit precision to avoid overflow by @boolemancer in #388 * `whisper` : various code clean-up and improvements by @asmaloney in #317 #318 #319 #322 etc * `whisper` : improve decoding by @ggerganov in #291 * `whisper` : account for speed_up flag for short audio #405 #### C-style API * Add loader class to allow loading from buffer and others by @prsyahmi in https://github.com/ggerganov/whisper.cpp/pull/353 * Add `whisper_token_data::plog` * Add `whisper_init_from_file()` * Add `whisper_init_from_buffer()` * Change `whisper_init()` * Remove `whisper_sample_best()` * Remove `whisper_sample_timestamp()` * Add `whisper_n_audio_ctx()` * Add `whisper_get_logits()` * Remove `whisper_get_probs()` * Change `struct whisper_full_params` #### Bindings * Golang bindings by @djthorpe in #287, #379, #384 #### Examples * `whisper.android` : remove android ABI constraint by @Digipom in #301 * `whisper.swiftui` : SwiftUI example by @Digipom in #308 * `main` : add `-ocsv`, aka `--output-csv` for writing CSV file containing millisecond timestamps by @NielsMayer in #340 * `command` : refactor to split command list & general transcription modes by @asmaloney in #331 * `command` : always-prompt mode by @dnhkng in #383 * `stream` : fix data race on bool + avoid division-by-zero a466c3404dc62dc221061bb37fb8f78741d749b8 * `stream` : fix a bug that inserted a lot of empty audio at the start a6dbd9188b13378dc36e2c669b9a22e17b4201d1 * `bench.wasm` : print system info fafd78945d5a7ea11ffa31fa6c05dd6593b7d031 ## New Contributors * @djthorpe made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/287 * @0xmohit made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/296 * @asmaloney made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/298 * @fitzsim made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/320 * @NielsMayer made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/340 * @aviks made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/345 * @eltociear made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/346 * @abitofevrything made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/368 * @Mike-Bell made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/381 * @dnhkng made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/383 * @prsyahmi made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/353 * @ianb made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/391 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.0.4...v1.1.0 ## Highlights - **Sample SwiftUI application [example/whisper.swiftui](https://github.com/ggerganov/whisper.cpp/tree/master/examples/whisper.swiftui)** <img width="1663" alt="image" src="https://user-images.githubusercontent.com/1991296/212539216-0aef65e4-f882-480a-8358-0f816838fd52.png">
v1.0.4
49 weeks ago
## What's Changed #### Core `ggml` / `whisper` * Make `ggml` compatible with c99 9955fa4ed7cc694d5d47fe0bb5f0d02066f9cbac | 0f117594066a213cc3cc9261c8906f316e6fb153 * Fix UB causing asserts in Debug when reading the model vocabulary 124c718c73f915f3e4235ae2af8841356e76177d * Minor improvements in the Greedy decoding strategy 6a7c82501e3794724ba80bfb9a983810af036803 * Add Windows build without OpenBLAS by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/282 * Add `whisper_tokenize()` - basic text tokenization bf69b669a00e457b6bfa69b97f1fdf2578d3e403 * Language auto-detect option by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/286 * Add AVX,AVX2 support for `ggml_vec_scale_f32` by @katsu560 in https://github.com/ggerganov/whisper.cpp/pull/285 * Implement extra cases for `ggml_compute_forward_dup_f16()` a7047b2a28a8eccb94318eca8a3207894d3822c7 * Added Roadmap and updated F.A.Q. discussion #126 #### C-style API * Add `whisper_tokenize()` * Add `whisper_lang_max_id()` * Add `whisper_lang_str()` * Add `whisper_lang_auto_detect()` * Add `whisper_token_lang()` #### Examples * Improve prompting in "talk" example a613f16aec81b7715cdbd4386ba62ab2ff1216b3 * Add "sliding window" mode to "stream" example b0f8013eb9f371b500abf1e3c506399ce7f59b11 * Add Android sample by @Digipom in https://github.com/ggerganov/whisper.cpp/pull/277 * Guided mode for the "command" example by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/271 * Example "main" supports `--prompt` option b8065d90f5fdcdb445a8fb3f4717cba54c332cac * Example "main" supports `--print-progress` option 32fbc8cd04912904cf84af7c5bd0e0e711a6f021 * Example "main" supports `--lang auto` option fba10a4c68f0533a339174ef81c6a18ea228d331 ## New Contributors * @Digipom made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/277 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/1.0.3...1.0.4 ## Highlights - **Sample Android application [example/whisper.android](https://github.com/ggerganov/whisper.cpp/tree/master/examples/whisper.android)** <p align="center"> <img width="629" alt="image" src="https://user-images.githubusercontent.com/1991296/208256401-7ebab53f-b788-4b15-8860-71825ef578c4.png"> <img width="200" alt="image" src="https://user-images.githubusercontent.com/1991296/208154256-82d972dc-221b-48c4-bfcb-36ce68602f93.png"> </p> - **General-purpose, short voice command detection on Raspberry Pi 4 using [example/command](https://github.com/ggerganov/whisper.cpp/tree/master/examples/command)**: https://user-images.githubusercontent.com/1991296/208255185-6e9d60ea-4bc8-4b64-b731-8ca9f3b7333b.mp4
iOS macOS watchOS tvOS
SDWebImage/SDWebImage 5.18.5
Asynchronous image downloader with cache support as a UIImageView category
⭐️ 24,703
🕓 1 week ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
5.18.5 - iOS 17 Workaround
1 week ago
See [all tickets marked for the 5.18.5 release](https://github.com/SDWebImage/SDWebImage/milestone/125) ### Fixes - Introduce the hacky workaround for iOS 17/macOS 14 ImageIO indexed color png decode (Apple's bug) #3634 - - This will use runtime detection (accurate and safe), and fix the wrong CGImageAlphaInfo when created from PNG using ImageIO decoder. Currently bug exists on iOS 17.0-17.2 - - Please help to fire radar to Apple, let them fix this problem as soon as possible. - Fix the iOS 17 UIKit issue that UIImageView entering the background will reset CALayer's contents, which cause SDAnimatedImageView render issue (out-of-sync) #3636 - Fix the sd_colorAtPoint/sd_colorsWithRect return wrong value on pre-multiplied CGImage #3637 - - Previous version this may return the premultiplied color, which is wrong. Should always return the un-premultiplied color. ### Tests - [Unit test] Use placehold.co to replace the down site via.placeholder.com #3639
5.18.4 - 5.18 Fix
4 weeks ago
See [all tickets marked for the 5.18.4 release](https://github.com/SDWebImage/SDWebImage/milestone/124) ### Changes - SDAnimatedImage now supports static image like JPEG data #3626 #3625 - - Previous version the initializer will return nil and has to use UIImage/NSImage instead
5.18.3 - 5.18 Fix
7 weeks ago
See [all tickets marked for the 5.18.3 release](https://github.com/SDWebImage/SDWebImage/milestone/122) ### Project - Update the TargetConditionals check for visionOS on Xcode 15.1 #3620 ### Fixes - Update the convenient API for case when user encode the format the same as image format, provide better quick return #3617 - Try to remove the unused NSNotification object filter, do filter by ourself #3619
5.18.2 - 5.18 Fix
9 weeks ago
See [all tickets marked for the 5.18.2 release](https://github.com/SDWebImage/SDWebImage/milestone/121) ### Fixes - Fix the SDDisplayLink on watchOS does not behave like other platform #3607
5.18.1 - Privacy Manifest
11 weeks ago
See [all tickets marked for the 5.18.1 release](https://github.com/SDWebImage/SDWebImage/milestone/120) ### Project - Added the visionOS support for "Build XCFramework" script target #3598 - Added xcprivacy to framework target and SPM #3600 ### Fixes - Fix the JFIF image orientation bug (which does not use EXIF but JFIF metadata) #3597 ### Warnings - Fix one warning because local variable shadows the variable outside of block #3599
5.18.0 - VisionOS and more
12 weeks ago
See [all tickets marked for the 5.18.0 release](https://github.com/SDWebImage/SDWebImage/milestone/119) ### VisionOS - Support to build for visionOS (no package manager support) #3556 - - Note this does not include CocoaPods/SwiftPM support. You need Xcode 15+ Beta to open SDWebImage project and build by yourself ### Features #### UI Category - Added SDWebImageAvoidAutoCancelImage to avoid cancel loading image requests for the same operation key #3592 @mTz0206 - Add better support for stateful view (UIButton) for image URL/progres s state management #3576 #### Downloader - Fix redundant requests for the same url during decoding time #3572 @Mervin1024 #### Decoder - Expose the data and format when SDAnimatedImageRep created with APNG/GIF/WebP/HEICS #3573 - Fix the CGImageCreateScaled to support 16/32 bit depth CGImage (RGB161616) and always preserve pixel format info #3575 ### Fixes - Add extra check for empty data during URLSession data callback #3587
5.17.0 - Reduce RAM with Force Decode
19 weeks ago
See [all tickets marked for the 5.17.0 release](https://github.com/SDWebImage/SDWebImage/milestone/118) ### Performance - Refactory the logic to handle force decode logic to avoid CA copy frame buffer, introduce SDImageForceDecodePolicy detailed control #3559 #3417 - - This fix the issue that non-ImageIO coder (means, WebPCoder) will cause CA to copy bitmap buffers and increase memory usage. - - You can still custom the behavior using the new `SDImageForceDecodePolicy`, defaults to automatic. - For coder plugin who want to opt-in to avoid `CA::copy_image`, use the new `preferredPixelFormat:` and do byte alignment and colorspace convert. ### Fixes - Fix macOS bug that SDImageCoderDecodeScaleDownLimitBytes still use the AnimatedImageRep and beyond the byte limit #3561 - Change macOS `sd_colorAtPoint/sd_colorsWithRect` which may loss colorspace information. Now it correctly convert to sRGB colorspace always. - Fix the CGImageCreateScaled to support 16/32 bit depth CGImage (RGB161616) and always preserve pixel format info #3575
5.16.0 - Limit Bytes && Frame Pool
25 weeks ago
See [all tickets marked for the 5.16.0 release](https://github.com/SDWebImage/SDWebImage/milestone/116) ### Features #### Animated Image - Performance: Introduce frame pool for SDAnimatedImage playback. Solve when multiple image view references the same URL image cause un-wanted decode which waste RAM/CPU #3524 - - Note this currently does not expose the frame pool API. Fire issue if you're facing issues about this change. #### Decoder - Introduce the automatically calculation of thumbnail (include animated/static image) using SDImageCoderDecodeScaleDownLimitBytes #3537 - - This calculation of the UIKit-based animated image frame count as well (only `UIAnimatedImage`, not `SDAnimatedImage`, because `SDAnimatedImage` manage frames dynamically). Fire issue if you're facing issues about this change. - - The `.scaleDownLargeImages` implementation has switched to use this instead of `.thumbnailPixelSize` (5.5.0 - 5.16.0) - - Note this introduce new API and need Coder Plugin update (like WebP/AVIF) ### Documentations - Update some comments to allows SwiftDocC generate better page #3547
5.15.8 - Fix macOS Crash
28 weeks ago
See [all tickets marked for the 5.15.8 release](https://github.com/SDWebImage/SDWebImage/milestone/117) ### Fixes - Try to fix macOS SDDisplayLink crash because of accessing the deallocated objc pointer during CVDisplayLinkRef callback #3531 ### Changes - Update the implementation SDScaledImageForScaleFactor to support SDAnimatedImage #3535
5.15.7 - Fix Crash
29 weeks ago
See [all tickets marked for the 5.15.7 release](https://github.com/SDWebImage/SDWebImage/milestone/115) ### Fixes - Try to solve the strange dispatch group crash in SDSafeExecute by removing inline #3526 ### Performance - Opt when multiple same URLs queried in parallel, which may cause duplicated decode and store disk operation #3523
iOS macOS watchOS tvOS
airbnb/lottie-ios 4.3.3
An iOS library to natively render After Effects vector animations
⭐️ 24,600
🕓 8 weeks ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
4.3.3
8 weeks ago
**Lottie 4.3.0** adds many new features, including: - Official support for SwiftUI! - A public Core Animation `CALayer` subclass - Support for reduced motion - Support for drop shadow layer effects - Support for visionOS You can learn more about Lottie 4.3.0 in this announcement: **[Lottie 4.3.0 now available, with official support for SwiftUI #2189](https://github.com/airbnb/lottie-ios/discussions/2189)** Lottie 4.3.3 fixes a regression introduced by Lottie 4.3.0 where the contents of a `LottieAnimationView` could crossfade / animate unexpectedly when updating the current `LottieAnimation` or rendering engine: https://github.com/airbnb/lottie-ios/issues/2200 ## New Features in Lottie 4.3.0 * Add SwiftUI `LottieView`, which wraps UIKit `LottieAnimationView` * Add SwiftUI `LottieSwitch`, which wraps UIKit `AnimatedSwitch` (https://github.com/airbnb/lottie-ios/pull/2138) * Add SwiftUI `LottieButton`, which wraps `AnimatedButton` (https://github.com/airbnb/lottie-ios/pull/2139) * `AnimatedSwitch` and `AnimatedButton` now support macOS (https://github.com/airbnb/lottie-ios/pull/2138, https://github.com/airbnb/lottie-ios/pull/2139) * Add `LottieAnimationLayer`, a Core Animation `CALayer` subclass for playing Lottie animations (https://github.com/airbnb/lottie-ios/pull/2073) * Add support for rendering drop shadow layer effects (https://github.com/airbnb/lottie-ios/pull/2142) * Add API for playing multiple markers sequentially (https://github.com/airbnb/lottie-ios/pull/2084) * Play "reduced motion" marker if `UIAccessibility.isReduceMotionEnabled` is true (https://github.com/airbnb/lottie-ios/pull/2110) * Update text provider API to use full `AnimationKeypath` values (https://github.com/airbnb/lottie-ios/pull/2183) * Add support for visionOS (https://github.com/airbnb/lottie-ios/pull/2152) * Drop support for Swift 5.5 (https://github.com/airbnb/lottie-ios/pull/2152) * Add contents gravity configuration to `AnimationImageProvider` (https://github.com/airbnb/lottie-ios/pull/2177) * Add support for customizing stroke width values using `FloatValueProvider` (https://github.com/airbnb/lottie-ios/pull/2179) * Adopt `Sendable` to support using Lottie with strict concurrency enabled (https://github.com/airbnb/lottie-ios/pull/2126) * Add `LottiePlaybackMode` to support declarative playback configuration (https://github.com/airbnb/lottie-ios/pull/2128) * Add option make main thread rendering engine force display update on every frame (https://github.com/airbnb/lottie-ios/pull/2168) * Add a option to prevent caching images from `AnimationImageProvider` (https://github.com/airbnb/lottie-ios/pull/2171) * Add support for customizing gradient values using `GradientValueProvider` (https://github.com/airbnb/lottie-ios/pull/2182) * Added additional support for multiple animations in `DotLottieFile` (https://github.com/airbnb/lottie-ios/pull/2074) * Add helper method to initialize `DotLottieFile` with data (https://github.com/airbnb/lottie-ios/pull/2090) ## Bug fixes * Remove `.../ZipFoundation/README.md` from targets and `*.md*` files from podspec (https://github.com/airbnb/lottie-ios/pull/2057)* * Fix issue where layers with negative X scale values could be pixelated (https://github.com/airbnb/lottie-ios/pull/2067) * Fix warnings when building with Swift 5.9 (https://github.com/airbnb/lottie-ios/pull/2072) * Restructure `ValueProviderStore` to not accumulate multiple values for the same key (https://github.com/airbnb/lottie-ios/pull/2082) * Disable bitcode when building XCFramework (https://github.com/airbnb/lottie-ios/pull/2121) * Fix unhandled file warning when building with SPM ([https://github.com/airbnb/lottie-ios/pull/213](https://github.com/airbnb/lottie-ios/pull/2132)) * Fix support for customizing color of `SolidLayer` using `ColorValueProvider` (https://github.com/airbnb/lottie-ios/pull/2154) * Fix issue where shape items could be unexpectedly ignored (https://github.com/airbnb/lottie-ios/pull/2156) * Fix issue where skew keyframes would unexpectedly not animate (https://github.com/airbnb/lottie-ios/pull/2157) * Fix issue where value providers could be ignored when falling back to main thread rendering engine (https://github.com/airbnb/lottie-ios/pull/2164) Thanks to everyone who contributed to this release!
4.3.2
9 weeks ago
**Lottie 4.3.0** adds many new features, including: - Official support for SwiftUI! - A public Core Animation `CALayer` subclass - Support for reduced motion - Support for drop shadow layer effects - Support for visionOS You can learn more about Lottie 4.3.0 in this announcement: **[Lottie 4.3.0 now available, with official support for SwiftUI #2189](https://github.com/airbnb/lottie-ios/discussions/2189)** ## Lottie 4.3.2 Lottie 4.3.2 redesigns the `LottiePlaybackMode` playback APIs that were introduced in Lottie 4.3.0. ### Before ```swift // Loop from 0.5 to 1.0 LottieView(animation: myAnimation) .play(.fromProgress(0.5, toProgress: 1.0, loopMode: .loop)) // Pause at the halfway point of the animation LottieView(animation: myAnimation) .play(.progress(0.5)) ``` ### After ```swift // Loop from 0.5 to 1.0 LottieView(animation: myAnimation) .playing(.fromProgress(0.5, toProgress: 1.0, loopMode: .loop)) // Pause at the halfway point of the animation LottieView(animation: myAnimation) .paused(at: .progress(0.5)) ``` ## New Features in Lottie 4.3.0 * Add SwiftUI `LottieView`, which wraps UIKit `LottieAnimationView` * Add SwiftUI `LottieSwitch`, which wraps UIKit `AnimatedSwitch` (https://github.com/airbnb/lottie-ios/pull/2138) * Add SwiftUI `LottieButton`, which wraps `AnimatedButton` (https://github.com/airbnb/lottie-ios/pull/2139) * `AnimatedSwitch` and `AnimatedButton` now support macOS (https://github.com/airbnb/lottie-ios/pull/2138, https://github.com/airbnb/lottie-ios/pull/2139) * Add `LottieAnimationLayer`, a Core Animation `CALayer` subclass for playing Lottie animations (https://github.com/airbnb/lottie-ios/pull/2073) * Add support for rendering drop shadow layer effects (https://github.com/airbnb/lottie-ios/pull/2142) * Add API for playing multiple markers sequentially (https://github.com/airbnb/lottie-ios/pull/2084) * Play "reduced motion" marker if `UIAccessibility.isReduceMotionEnabled` is true (https://github.com/airbnb/lottie-ios/pull/2110) * Update text provider API to use full `AnimationKeypath` values (https://github.com/airbnb/lottie-ios/pull/2183) * Add support for visionOS (https://github.com/airbnb/lottie-ios/pull/2152) * Drop support for Swift 5.5 (https://github.com/airbnb/lottie-ios/pull/2152) * Add contents gravity configuration to `AnimationImageProvider` (https://github.com/airbnb/lottie-ios/pull/2177) * Add support for customizing stroke width values using `FloatValueProvider` (https://github.com/airbnb/lottie-ios/pull/2179) * Adopt `Sendable` to support using Lottie with strict concurrency enabled (https://github.com/airbnb/lottie-ios/pull/2126) * Add `LottiePlaybackMode` to support declarative playback configuration (https://github.com/airbnb/lottie-ios/pull/2128) * Add option make main thread rendering engine force display update on every frame (https://github.com/airbnb/lottie-ios/pull/2168) * Add a option to prevent caching images from `AnimationImageProvider` (https://github.com/airbnb/lottie-ios/pull/2171) * Add support for customizing gradient values using `GradientValueProvider` (https://github.com/airbnb/lottie-ios/pull/2182) * Added additional support for multiple animations in `DotLottieFile` (https://github.com/airbnb/lottie-ios/pull/2074) * Add helper method to initialize `DotLottieFile` with data (https://github.com/airbnb/lottie-ios/pull/2090) ## Bug fixes * Remove `.../ZipFoundation/README.md` from targets and `*.md*` files from podspec (https://github.com/airbnb/lottie-ios/pull/2057)* * Fix issue where layers with negative X scale values could be pixelated (https://github.com/airbnb/lottie-ios/pull/2067) * Fix warnings when building with Swift 5.9 (https://github.com/airbnb/lottie-ios/pull/2072) * Restructure `ValueProviderStore` to not accumulate multiple values for the same key (https://github.com/airbnb/lottie-ios/pull/2082) * Disable bitcode when building XCFramework (https://github.com/airbnb/lottie-ios/pull/2121) * Fix unhandled file warning when building with SPM ([https://github.com/airbnb/lottie-ios/pull/213](https://github.com/airbnb/lottie-ios/pull/2132)) * Fix support for customizing color of `SolidLayer` using `ColorValueProvider` (https://github.com/airbnb/lottie-ios/pull/2154) * Fix issue where shape items could be unexpectedly ignored (https://github.com/airbnb/lottie-ios/pull/2156) * Fix issue where skew keyframes would unexpectedly not animate (https://github.com/airbnb/lottie-ios/pull/2157) * Fix issue where value providers could be ignored when falling back to main thread rendering engine (https://github.com/airbnb/lottie-ios/pull/2164) Thanks to everyone who contributed to this release!
4.3.1
9 weeks ago
**Lottie 4.3.0** adds many new features, including: - Official support for SwiftUI! - A public Core Animation `CALayer` subclass - Support for reduced motion - Support for drop shadow layer effects - Support for visionOS You can learn more about Lottie 4.3.0 in this announcement: **[Lottie 4.3.0 now available, with official support for SwiftUI #2189](https://github.com/airbnb/lottie-ios/discussions/2189)** Lottie 4.3.1 fixes a small regression introduced by 4.3.0: https://github.com/airbnb/lottie-ios/issues/2193 ## New Features * Add SwiftUI `LottieView`, which wraps UIKit `LottieAnimationView` * Add SwiftUI `LottieSwitch`, which wraps UIKit `AnimatedSwitch` (https://github.com/airbnb/lottie-ios/pull/2138) * Add SwiftUI `LottieButton`, which wraps `AnimatedButton` (https://github.com/airbnb/lottie-ios/pull/2139) * `AnimatedSwitch` and `AnimatedButton` now support macOS (https://github.com/airbnb/lottie-ios/pull/2138, https://github.com/airbnb/lottie-ios/pull/2139) * Add `LottieAnimationLayer`, a Core Animation `CALayer` subclass for playing Lottie animations (https://github.com/airbnb/lottie-ios/pull/2073) * Add support for rendering drop shadow layer effects (https://github.com/airbnb/lottie-ios/pull/2142) * Add API for playing multiple markers sequentially (https://github.com/airbnb/lottie-ios/pull/2084) * Play "reduced motion" marker if `UIAccessibility.isReduceMotionEnabled` is true (https://github.com/airbnb/lottie-ios/pull/2110) * Update text provider API to use full `AnimationKeypath` values (https://github.com/airbnb/lottie-ios/pull/2183) * Add support for visionOS (https://github.com/airbnb/lottie-ios/pull/2152) * Drop support for Swift 5.5 (https://github.com/airbnb/lottie-ios/pull/2152) * Add contents gravity configuration to `AnimationImageProvider` (https://github.com/airbnb/lottie-ios/pull/2177) * Add support for customizing stroke width values using `FloatValueProvider` (https://github.com/airbnb/lottie-ios/pull/2179) * Adopt `Sendable` to support using Lottie with strict concurrency enabled (https://github.com/airbnb/lottie-ios/pull/2126) * Add `LottiePlaybackMode` to support declarative playback configuration (https://github.com/airbnb/lottie-ios/pull/2128) * Add option make main thread rendering engine force display update on every frame (https://github.com/airbnb/lottie-ios/pull/2168) * Add a option to prevent caching images from `AnimationImageProvider` (https://github.com/airbnb/lottie-ios/pull/2171) * Add support for customizing gradient values using `GradientValueProvider` (https://github.com/airbnb/lottie-ios/pull/2182) * Added additional support for multiple animations in `DotLottieFile` (https://github.com/airbnb/lottie-ios/pull/2074) * Add helper method to initialize `DotLottieFile` with data (https://github.com/airbnb/lottie-ios/pull/2090) ## Bug fixes * Remove `.../ZipFoundation/README.md` from targets and `*.md*` files from podspec (https://github.com/airbnb/lottie-ios/pull/2057)* * Fix issue where layers with negative X scale values could be pixelated (https://github.com/airbnb/lottie-ios/pull/2067) * Fix warnings when building with Swift 5.9 (https://github.com/airbnb/lottie-ios/pull/2072) * Restructure `ValueProviderStore` to not accumulate multiple values for the same key (https://github.com/airbnb/lottie-ios/pull/2082) * Disable bitcode when building XCFramework (https://github.com/airbnb/lottie-ios/pull/2121) * Fix unhandled file warning when building with SPM ([https://github.com/airbnb/lottie-ios/pull/213](https://github.com/airbnb/lottie-ios/pull/2132)) * Fix support for customizing color of `SolidLayer` using `ColorValueProvider` (https://github.com/airbnb/lottie-ios/pull/2154) * Fix issue where shape items could be unexpectedly ignored (https://github.com/airbnb/lottie-ios/pull/2156) * Fix issue where skew keyframes would unexpectedly not animate (https://github.com/airbnb/lottie-ios/pull/2157) * Fix issue where value providers could be ignored when falling back to main thread rendering engine (https://github.com/airbnb/lottie-ios/pull/2164) Thanks to everyone who contributed to this release!
4.3.0
10 weeks ago
**Lottie 4.3.0** adds many new features, including: - Official support for SwiftUI! - A public Core Animation `CALayer` subclass - Support for reduced motion - Support for drop shadow layer effects - Support for visionOS You can learn more about Lottie 4.3.0 in this announcement: **[Lottie 4.3.0 now available, with official support for SwiftUI #2189](https://github.com/airbnb/lottie-ios/discussions/2189)** ## New Features * Add SwiftUI `LottieView`, which wraps UIKit `LottieAnimationView` * Add SwiftUI `LottieSwitch`, which wraps UIKit `AnimatedSwitch` (https://github.com/airbnb/lottie-ios/pull/2138) * Add SwiftUI `LottieButton`, which wraps `AnimatedButton` (https://github.com/airbnb/lottie-ios/pull/2139) * `AnimatedSwitch` and `AnimatedButton` now support macOS (https://github.com/airbnb/lottie-ios/pull/2138, https://github.com/airbnb/lottie-ios/pull/2139) * Add `LottieAnimationLayer`, a Core Animation `CALayer` subclass for playing Lottie animations (https://github.com/airbnb/lottie-ios/pull/2073) * Add support for rendering drop shadow layer effects (https://github.com/airbnb/lottie-ios/pull/2142) * Add API for playing multiple markers sequentially (https://github.com/airbnb/lottie-ios/pull/2084) * Play "reduced motion" marker if `UIAccessibility.isReduceMotionEnabled` is true (https://github.com/airbnb/lottie-ios/pull/2110) * Update text provider API to use full `AnimationKeypath` values (https://github.com/airbnb/lottie-ios/pull/2183) * Add support for visionOS (https://github.com/airbnb/lottie-ios/pull/2152) * Drop support for Swift 5.5 (https://github.com/airbnb/lottie-ios/pull/2152) * Add contents gravity configuration to `AnimationImageProvider` (https://github.com/airbnb/lottie-ios/pull/2177) * Add support for customizing stroke width values using `FloatValueProvider` (https://github.com/airbnb/lottie-ios/pull/2179) * Adopt `Sendable` to support using Lottie with strict concurrency enabled (https://github.com/airbnb/lottie-ios/pull/2126) * Add `LottiePlaybackMode` to support declarative playback configuration (https://github.com/airbnb/lottie-ios/pull/2128) * Add option make main thread rendering engine force display update on every frame (https://github.com/airbnb/lottie-ios/pull/2168) * Add a option to prevent caching images from `AnimationImageProvider` (https://github.com/airbnb/lottie-ios/pull/2171) * Add support for customizing gradient values using `GradientValueProvider` (https://github.com/airbnb/lottie-ios/pull/2182) * Added additional support for multiple animations in `DotLottieFile` (https://github.com/airbnb/lottie-ios/pull/2074) * Add helper method to initialize `DotLottieFile` with data (https://github.com/airbnb/lottie-ios/pull/2090) ## Bug fixes * Remove `.../ZipFoundation/README.md` from targets and `*.md*` files from podspec (https://github.com/airbnb/lottie-ios/pull/2057)* * Fix issue where layers with negative X scale values could be pixelated (https://github.com/airbnb/lottie-ios/pull/2067) * Fix warnings when building with Swift 5.9 (https://github.com/airbnb/lottie-ios/pull/2072) * Restructure `ValueProviderStore` to not accumulate multiple values for the same key (https://github.com/airbnb/lottie-ios/pull/2082) * Disable bitcode when building XCFramework (https://github.com/airbnb/lottie-ios/pull/2121) * Fix unhandled file warning when building with SPM ([https://github.com/airbnb/lottie-ios/pull/213](https://github.com/airbnb/lottie-ios/pull/2132)) * Fix support for customizing color of `SolidLayer` using `ColorValueProvider` (https://github.com/airbnb/lottie-ios/pull/2154) * Fix issue where shape items could be unexpectedly ignored (https://github.com/airbnb/lottie-ios/pull/2156) * Fix issue where skew keyframes would unexpectedly not animate (https://github.com/airbnb/lottie-ios/pull/2157) * Fix issue where value providers could be ignored when falling back to main thread rendering engine (https://github.com/airbnb/lottie-ios/pull/2164) Thanks to everyone who contributed to this release!
4.2.0
30 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog ## What's Changed * Added support for Opacity, Position, Scale, and Rotation value providers to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/2047) * Updated minimum macOS version to 10.11 (https://github.com/airbnb/lottie-ios/pull/2050) * Fixed issue where rounded corners algorithm would return incorrect path for shapes without any rounded corners (#1964) * Improved dotLottie error handling (https://github.com/airbnb/lottie-ios/pull/1969) * Added support for loading DotLottieFile by name and filename synchronously (https://github.com/airbnb/lottie-ios/pull/1968) * Updated ZIPFoundation to 0.9.16 to resolve `dataCorrupted` errors (https://github.com/airbnb/lottie-ios/pull/1978) * Fixed issue where `**` wildcard incorrectly required matching at least one path component (https://github.com/airbnb/lottie-ios/pull/1988) * Fixed issue where completion handler could be called unexpectedly when setting up animation (https://github.com/airbnb/lottie-ios/pull/1994) * Added `LottieAnimationView.allHierarchyKeypaths()` to get list of animation keypaths at runtime (https://github.com/airbnb/lottie-ios/pull/2004) * Added a warning when playing animation that uses unsupported After Effects expressions (https://github.com/airbnb/lottie-ios/pull/2006) * Added `LottieAnimationView.maskAnimationToBounds` configuration option (https://github.com/airbnb/lottie-ios/pull/2008) * Trim whitespaces and newlines before decoding base 64 string to image (https://github.com/airbnb/lottie-ios/pull/2016) * Added support for configuring `LottieBackgroundBehavior` to Objective-C `CompatibleAnimationView` (https://github.com/airbnb/lottie-ios/pull/2027) * Fixed issue where Trim could be applied to too many shape items (https://github.com/airbnb/lottie-ios/pull/2041) * Set animationLayer to nil when removing oldAnimation (https://github.com/airbnb/lottie-ios/pull/2035) * Fixed issue where Trim strokeStart / strokeEnd could be rendered in incorrect order (https://github.com/airbnb/lottie-ios/pull/2049) * Fixed issue where calling `setValueProvider` would reset animation progress (https://github.com/airbnb/lottie-ios/pull/2052) * Fixed issue where trim offset could be calculated incorrectly (https://github.com/airbnb/lottie-ios/pull/2053) **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.1.3...4.2.0
4.1.3
40 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog ## What's Changed * Add support for 3D rotations on X and Y axis (https://github.com/airbnb/lottie-ios/pull/1930) * Update color parsing to ignore alpha values for consistency with other platforms (https://github.com/airbnb/lottie-ios/pull/1934) * Allow subclassing `LottieAnimationView` (https://github.com/airbnb/lottie-ios/pull/1937) * Expose `AnimationTextProvider` in objc wrapper (https://github.com/airbnb/lottie-ios/pull/1944) * Add dispatch queue parameter to dotLottie loading methods (https://github.com/airbnb/lottie-ios/pull/1956) * Fix macOS build issues for apps using `Lottie.xcframework` / `lottie-spm` (https://github.com/airbnb/lottie-ios/pull/1960)
4.1.2
44 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog 4.1.2 fixes an issue where the [lottie-spm](https://github.com/airbnb/lottie-spm) package would fail to build in some environments: https://github.com/airbnb/lottie-spm/pull/5#issuecomment-1398991609, https://github.com/airbnb/lottie-ios/issues/1926#issuecomment-1398866563 ## 4.1.0 release notes We've added a new way to integrate Lottie into your project using Swift Package Manager. We now provide a separate [lottie-spm](https://github.com/airbnb/lottie-spm) repo that is much smaller than the main lottie-ios repo (~500kb instead of ~300mb). Learn more about this change [here](https://github.com/airbnb/lottie-ios#swift-package-manager). ### Improvements and bug fixes * Made DotLottieAnimation attributes optional to simplify Manifest file (https://github.com/airbnb/lottie-ios/pull/1844) * Fix heap buffer overflow in CGColor+RGB extensions (https://github.com/airbnb/lottie-ios/pull/1858) * Add support for display P3 color space (https://github.com/airbnb/lottie-ios/pull/1857) * Add some missing utility to CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1881) * Fix issue where ShapeTransform could incorrectly affect stroke width (https://github.com/airbnb/lottie-ios/pull/1872) * Fix issue where empty trim item would take precedence over non-empty trim item (https://github.com/airbnb/lottie-ios/pull/1875) * Fix issue where some top-level shape items would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1874) * Fix frame setting issue for CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1878) * Gradient Fill Layer: Support strokes (https://github.com/airbnb/lottie-ios/pull/1818) * Change veryLargeRect size to fix issue with masks (https://github.com/airbnb/lottie-ios/pull/1884) * Fix issue where Fill following other Fill would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1888) * Fix issue where negative `scale.x` values didn't render correctly on iOS 14 (https://github.com/airbnb/lottie-ios/pull/1894) * Fix issue where `LottieAnimationView.currentFrame` would be incorrect after playing animation with `LottieLoopMode.playOnce` (https://github.com/airbnb/lottie-ios/pull/1897) * Fix issue where shape items could be applied in incorrect order (https://github.com/airbnb/lottie-ios/pull/1899) * Fix issue where stroke and fill could be rendered in incorrect order (https://github.com/airbnb/lottie-ios/pull/1903) * Fix issue where `play(fromProgress: 1, toProgress: 0)` animation would not actually play (https://github.com/airbnb/lottie-ios/pull/1908) * Add support for skew animations (https://github.com/airbnb/lottie-ios/pull/1917)
4.1.1
44 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog 4.1.1 fixes an issue where the [lottie-spm](https://github.com/airbnb/lottie-spm) package could not be embedded into iOS app builds (#1925), which could cause apps to crash (#1926). ## 4.1.0 release notes We've added a new way to integrate Lottie into your project using Swift Package Manager. We now provide a separate [lottie-spm](https://github.com/airbnb/lottie-spm) repo that is much smaller than the main lottie-ios repo (~500kb instead of ~300mb). Learn more about this change [here](https://github.com/airbnb/lottie-ios#swift-package-manager). ### Improvements and bug fixes * Made DotLottieAnimation attributes optional to simplify Manifest file (https://github.com/airbnb/lottie-ios/pull/1844) * Fix heap buffer overflow in CGColor+RGB extensions (https://github.com/airbnb/lottie-ios/pull/1858) * Add support for display P3 color space (https://github.com/airbnb/lottie-ios/pull/1857) * Add some missing utility to CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1881) * Fix issue where ShapeTransform could incorrectly affect stroke width (https://github.com/airbnb/lottie-ios/pull/1872) * Fix issue where empty trim item would take precedence over non-empty trim item (https://github.com/airbnb/lottie-ios/pull/1875) * Fix issue where some top-level shape items would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1874) * Fix frame setting issue for CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1878) * Gradient Fill Layer: Support strokes (https://github.com/airbnb/lottie-ios/pull/1818) * Change veryLargeRect size to fix issue with masks (https://github.com/airbnb/lottie-ios/pull/1884) * Fix issue where Fill following other Fill would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1888) * Fix issue where negative `scale.x` values didn't render correctly on iOS 14 (https://github.com/airbnb/lottie-ios/pull/1894) * Fix issue where `LottieAnimationView.currentFrame` would be incorrect after playing animation with `LottieLoopMode.playOnce` (https://github.com/airbnb/lottie-ios/pull/1897) * Fix issue where shape items could be applied in incorrect order (https://github.com/airbnb/lottie-ios/pull/1899) * Fix issue where stroke and fill could be rendered in incorrect order (https://github.com/airbnb/lottie-ios/pull/1903) * Fix issue where `play(fromProgress: 1, toProgress: 0)` animation would not actually play (https://github.com/airbnb/lottie-ios/pull/1908) * Add support for skew animations (https://github.com/airbnb/lottie-ios/pull/1917)
4.1.0
44 weeks ago
> **Note** > Starting in Lottie 4.0, the Core Animation rendering engine is now enabled by default. > Learn more about this change: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog We've added a new way to integrate Lottie into your project using Swift Package Manager. We now provide a separate [lottie-spm](https://github.com/airbnb/lottie-spm) repo that is much smaller than the main lottie-ios repo (~500kb instead of ~300mb). Learn more about this change [here](https://github.com/airbnb/lottie-ios#swift-package-manager). ### Improvements and bug fixes * Made DotLottieAnimation attributes optional to simplify Manifest file (https://github.com/airbnb/lottie-ios/pull/1844) * Fix heap buffer overflow in CGColor+RGB extensions (https://github.com/airbnb/lottie-ios/pull/1858) * Add support for display P3 color space (https://github.com/airbnb/lottie-ios/pull/1857) * Add some missing utility to CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1881) * Fix issue where ShapeTransform could incorrectly affect stroke width (https://github.com/airbnb/lottie-ios/pull/1872) * Fix issue where empty trim item would take precedence over non-empty trim item (https://github.com/airbnb/lottie-ios/pull/1875) * Fix issue where some top-level shape items would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1874) * Fix frame setting issue for CompatibleAnimationView (https://github.com/airbnb/lottie-ios/pull/1878) * Gradient Fill Layer: Support strokes (https://github.com/airbnb/lottie-ios/pull/1818) * Change veryLargeRect size to fix issue with masks (https://github.com/airbnb/lottie-ios/pull/1884) * Fix issue where Fill following other Fill would be silently ignored (https://github.com/airbnb/lottie-ios/pull/1888) * Fix issue where negative `scale.x` values didn't render correctly on iOS 14 (https://github.com/airbnb/lottie-ios/pull/1894) * Fix issue where `LottieAnimationView.currentFrame` would be incorrect after playing animation with `LottieLoopMode.playOnce` (https://github.com/airbnb/lottie-ios/pull/1897) * Fix issue where shape items could be applied in incorrect order (https://github.com/airbnb/lottie-ios/pull/1899) * Fix issue where stroke and fill could be rendered in incorrect order (https://github.com/airbnb/lottie-ios/pull/1903) * Fix issue where `play(fromProgress: 1, toProgress: 0)` animation would not actually play (https://github.com/airbnb/lottie-ios/pull/1908) * Add support for skew animations (https://github.com/airbnb/lottie-ios/pull/1917)
4.0.1
50 weeks ago
4.0.1 fixes an issue in 4.0.0 where the install could fail due to issues with Git LFS: #1830, #1834. We now publish `xframework` binaries as a part of our release process: https://github.com/airbnb/lottie-ios/discussions/1807#discussioncomment-4346438 ## Major changes in Lottie 4.0 Learn more about this release: **[Announcing Lottie 4.0 for iOS](https://medium.com/airbnb-engineering/announcing-lottie-4-0-for-ios-d4d226862a54)** on the Airbnb Tech Blog * The new Core Animation rendering engine ([first introduced in Lottie 3.4.0](https://github.com/airbnb/lottie-ios/discussions/1627)) is now enabled by default for supported animations. * Specifically, `LottieConfiguration.shared.renderingEngine` now defaults to `.automatic` instead of `.mainThread`. Animations that use features which are not supported by the Core Animation rendering engine will automatically fall back to using the original Main Thread rendering engine. * When using the Core Animation rendering engine, Lottie animations now always animate smoothly regardless of the amount of work being done on the app’s main thread. This **significantly improves animation performance** while also eliminating CPU overhead. * If you encounter any compatibility issues when using `RenderingEngineOption.automatic`, please file an issue with a copy of your animation json. * `DecodingStrategy.dictionaryBased` is now enabled by default * The new dictionary-based decoding implementation is 2x faster than the previous `Codable` decoding implementation * If you encounter any compatibility issues with this new decoding implementation, please file an issue with a copy of your animation json. * Backwards compatibility typealiases for `Animation`, `AnimationView`, `Color`, `Vector1D`, `Vector2D`, and `Vector3D`, which were introduced in [Lottie 3.5.0](https://github.com/airbnb/lottie-ios/releases), have been removed to resolve conflicts with types in Apple frameworks. These types are now named `LottieAnimation`, `LottieAnimationView`, `LottieColor`, `LottieVector1D`, `LottieVector2D`, and `LottieVector3D`. * The default `LottieBackgroundBehavior` used by `LottieAnimationView` is now `.pauseAndRestore` instead of `pause`. * Lottie for iOS now supports the [dotLottie file format](https://dotlottie.io/). * The library's minimum-supported Swift version is now Swift 5.5. XCFramework checksum: b6d8b0b81975d91965b8bb00cffb0eae4b3d94538b6950a90bc1366afd5d4239
iOS macOS tvOS

New Releases

SquidKit/Tentacles 8.2.0
SquidKit's networking library for iOS
⭐️ 0
🕓 15 minutes ago
iOS
uploadcare/uploadcare-swift 0.13.0
Swift API client for iOS, iPadOS, tvOS, macOS, and Linux handles uploads and further operations with files by wrapping Uploadcare Upload and REST APIs.
⭐️ 11
🕓 34 minutes ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
0.13.0
9 hours ago
- Added a new method for AWS Rekognition Moderation Add-on. - Added new methods for Add-ons that wait for execution results: `performAWSRekognition`, `performAWSRekognitionModeration`, `performClamav`, and `performRemoveBG`. - Added a new `defaultEffects` property to `File` and `UploadedFile` models, containing a set of processing operations applied to the file when the group is created. - Deprecated the `datetimeStored` property of `Group` and `UploadedFilesGroup` models; it will be removed in future releases. - Renamed the `executeAWSRecognition` method to `executeAWSRekognition`. - Updated the demo app.
0.12.0
7 weeks ago
* Added support for new [webhook event types](https://uploadcare.com/docs/webhooks/#event-types). * Added support for the new [multipage conversion feature](https://uploadcare.com/docs/transformations/document-conversion/#multipage-conversion). * Fixed a bug related to authorization in external [upload sources](https://uploadcare.com/docs/upload-sources/#upload-source-list). * Made small improvements in the [Demo app](https://github.com/uploadcare/uploadcare-swift/tree/master/Demo). * Removed old deprecated methods. * Updated the documentation.
0.11.0
12 weeks ago
- Added support for Linux, making all async/await methods available for Linux applications and server-side Swift projects. - Updated the minimum required Swift version to 5.6.
0.10.0
15 weeks ago
- Now all methods support Swift Concurrency (async-await) (https://github.com/uploadcare/uploadcare-swift/issues/83). - Added a new method to upload a file from a URL that waits until the upload finishes and returns an `UploadedFile` object (https://github.com/uploadcare/uploadcare-swift/issues/107). - All methods have examples of usage in the source code documentation. You can find them by **OPTION+click** on a method in Xcode or by using "Build Documentation" feature. - Demo app now uses new async methods.
0.9.1
1 year ago
- Fix for a callback returning an error after uploading a video file using multipart uploading. (https://github.com/uploadcare/uploadcare-swift/issues/105)
0.9.0
1 year ago
This release is a result of REST API update to a new version. Read more about it [here](https://uploadcare.com/docs/changelog/#2022-33). **New**: - Using REST API version 0.7. - Minimum required Swift version is now 5.5. - Metadata dictionary can be provided for direct, multipart and primary upload methods. - Metadata dictionary can be provided for Upload from URL method. - ```fileInfo``` method of REST API accepts query string or ```FileInfoQuery``` struct that allows to include additional fields in the response data. - ```fileMetadata``` method added to get file's metadata dictionary. - ```fileMetadataValue``` method added to get metadata key's value. - ```updateFileMetadata``` method added to update/create metadata key's value. - ```deleteFileMetadata``` method added to delete metadata key. - - ```deleteGroup``` method to delete a file group by its ID. - REST API: new methods ```executeAWSRecognition```, ```checkAWSRecognitionStatus```, ```executeClamav```, ```checkClamAVStatus```, ```executeRemoveBG``` and ```checkRemoveBGStatus``` for Add-Ons feature (check Add-Ons docs for more details). - ```File``` model: - New property: ```metadata``` dictionary. - New property: ```appData``` (Application names and data associated with these applications. Check Add-Ons section of REST API). - New property: ```contentInfo``` that contains image/video metadata and MIME type. - ```UploadedFile``` model: - New property: ```done``` (Same as ``size`` according API docs). - New property: ```contentInfo``` that contains image/video metadata and MIME type. - New property: ```metadata``` dictionary. **Changed**: - Fixed: type of ```channels``` property of ```AudioMetadata``` model is now Int. - ```File``` model: - Updated: ```VideoInfo``` model's properties ```audio``` and ```video``` are arrays now that contains metadata of audio and video tracks of the file. **Removed**: - ```storeGroup``` method is unavailable (removed on API side). To store or remove files from a group, query the list of files in it, split the list into chunks of 100 files per chunk and then perform batch file storing or batch file removal for all the chunks. - Removed sorting by size from pagination query for getting list of files (removed on API side). - ```File``` model: - Removed: ```imageInfo``` and ```videoInfo``` (replaced with new ```contentInfo``` property). - Removed: ```rekognitionInfo```.
0.8.2
1 year ago
What's fixed: - Crash when detecting mime type of a small file (https://github.com/uploadcare/uploadcare-swift/issues/102)
0.8.1
1 year ago
What's fixed: - File storing behavior was missing for direct upload requests
0.8.0
1 year ago
What's new: - All methods were updated to use Result type in completion blocks - Allow setting signature from the external source for the direct upload method (https://github.com/uploadcare/uploadcare-swift/pull/93) - Allow setting signature from the external source for other methods: - Upload file from url - Multipart file uploading - Create files group from a set of files - Create files group from a set of files UUIDs - Files group info - main uploadFile method that decides which upload method to use internally - upload method of UploadedFile object - Clarified how to use background upload - Documentation update
0.7.0
1 year ago
What's new: - Switched from Alamofire to URLSession for all network requests - Added integration tests
iOS macOS watchOS tvOS
rickclephas/KMP-NativeCoroutines v1.0.0-ALPHA-22
Library to use Kotlin Coroutines from Swift code in KMP apps
⭐️ 864
🕓 1 hour ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
v1.0.0-ALPHA-22
10 hours ago
### Kotlin * Updated Kotlin to 1.9.21 * Updated KSP to 1.0.15
v1.0.0-ALPHA-21
1 week ago
### Kotlin * Added support for K2 compiler checks * Fixed issue where KSP plugin would throw unhelpful exceptions
v1.0.0-ALPHA-21-kotlin-2.0.0-Beta1
1 week ago
### Kotlin * Updated Kotlin to 2.0.0-Beta1
v1.0.0-ALPHA-20
3 weeks ago
### Kotlin * Updated KSP to 1.0.14
v1.0.0-ALPHA-19
4 weeks ago
### Kotlin - Updated Kotlin to 1.9.20
v1.0.0-ALPHA-18-kotlin-1.9.20-RC2
4 weeks ago
### Kotlin - Updated Kotlin to 1.9.20-RC2
v1.0.0-ALPHA-18-kotlin-1.9.20-RC
6 weeks ago
### Kotlin * Updated Kotlin to 1.9.20-RC
v1.0.0-ALPHA-18-kotlin-1.9.20-Beta2
9 weeks ago
### Kotlin * Updated Kotlin to 1.9.20-Beta2
v1.0.0-ALPHA-18-kotlin-1.9.20-Beta
11 weeks ago
### Kotlin * Updated Kotlin to 1.9.20-Beta
v1.0.0-ALPHA-18
13 weeks ago
### Kotlin - Updated Kotlin to 1.9.10 - Updated KSP to 1.0.13 > **Note**: KSP 1.0.13 has a known issue with the non-embeddable compiler JAR (https://github.com/google/ksp/issues/1489)
iOS macOS watchOS tvOS
rockwalletcode/sardine-ios v1.0.27
The sardine SPM
⭐️ 0
🕓 1 hour ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
v1.0.27
13 hours ago
v1.0.25
12 weeks ago
iOS SDK Changelog [v1.0.25 (2023-07-24)](https://drive.google.com/file/d/1OU8o1A-La6rvZWmt8IUTtG0KJENoFysr/view?usp=sharing)sha256: 9df985518b35620ef6103ea3a6087560a7368d2b59484fbdbd7eebd179cc8efd [Enhancements](https://docs.sardine.ai/docs/risk-sdk/changelog-ios#enhancements) Enhancing signal collection [v1.0.24 (2023-06-27)](https://drive.google.com/file/d/1_l0bo4SeLAjPDPsgHHVLiwegMPIlt7eH/view?usp=drive_link)sha256:c15a4f2c89e5ac1e6e76052cd07db8d147da6e06784629c1c7e34c8b6e6a3d07 [Features](https://docs.sardine.ai/docs/risk-sdk/changelog-ios#features) Presenting setRegion option to set the region of the SDK. [v1.0.23 (2023-06-02)](https://drive.google.com/file/d/1pCfd_srHycB0zLOXOcvF6zgu_roWrJUf/view?usp=share_link)sha256: 9f6a8be2b749d47c4a83fc3bc3caf06bfd278ef0e0c20118471b63450d1ce2a8 [Fixes](https://docs.sardine.ai/docs/risk-sdk/changelog-ios#fixes) Fixing "Unsupported swift architecture" issue for intel simulators [Features](https://docs.sardine.ai/docs/risk-sdk/changelog-ios#features-1) New option is available "parentSessionKey" which can be used to link related sessions [v1.0.19 (2023-03-08)](https://drive.google.com/file/d/1Y1JqiER2TgCz2JRh4emp_lFpYFF0Hidm/view?usp=share_link)sha256: 16376a5022f15e193ab543dd3949baec37844663223a57b488c3a84cde66bbac [Enhancements:](https://docs.sardine.ai/docs/risk-sdk/changelog-ios#enhancements-1) VPN detection logic enhancement. [v1.0.18](https://drive.google.com/file/d/1YIjL_nr7oUCCB34MWnUn0ZbNExrOWOlb/view?usp=share_link) (2022-12-06)sha256: 12d4735e9b5134b0e88a7dbe7324a9fa491e944f788da6cc94ba7f4a752c3bd4 [Bug Fixes](https://docs.sardine.ai/docs/risk-sdk/changelog-ios#bug-fixes) Enhancing Sensors Data Adding call status feature [v1.0.17](https://drive.google.com/file/d/1H7zL7HfQrSOQw1MmMmTSKIikrORu-5gW/view?usp=sharing) (2022-09-01)sha256: a22895e13c922c4bec485631e40eed5213721d5fed0a6576c821e41a4f5b2cab [Bug Fixes](https://docs.sardine.ai/docs/risk-sdk/changelog-ios#bug-fixes-1) Fix touches collection to be enabled only if enableBehaviorBiometrics is enabled. [v1.0.16](https://drive.google.com/file/d/1IJ__7fk96SGt4dtssfiw29P7COzGtq6y/view?usp=sharing) (2022-08-17)sha256: 70897c23ee7fe1c96cbf95c527eaed684f2246abba045597bef0d64aec855eea [Enhancement](https://docs.sardine.ai/docs/risk-sdk/changelog-ios#enhancement) Minor Enhancements
iOS
Cybrid-app/cybrid-api-bank-swift v0.111.5
Swift client for the Cybrid Bank APIs
⭐️ 0
🕓 2 hours ago
iOS macOS watchOS tvOS
natura-cosmeticos/natds-ios 7.11.3
Natura Design System
⭐️ 45
🕓 2 hours ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
7.10.29
15 weeks ago
## What's new - resolve natchip and natchipfilter switch themes - natcounter disabling keyboard - fix model a logo - adding handler to natcounter - Feature/avon logo v2 - fixes for app bar review - dialog with switch themes
7.10.24
21 weeks ago
## What's new - fix button custom theme color for click disable - adding different sizes to button - fix for natcounter keyboard done
7.10.23
23 weeks ago
## What's new - Feature/switch theme @hayna-foursys (#408) - fix underscore @hayna-foursys (#405) - Update Podfile @Design-System-Natura (#407) - Update CHANGELOG.md @Design-System-Natura (#406) - Update Fastfile @Design-System-Natura (#404)
7.10.22
26 weeks ago
- removing Helvetica font family - add AvonV2 theme - add NaturaV2 theme
7.10.18
26 weeks ago
- new component: NatChipFilter - add Textfield to NatCounter value
7.10.17
29 weeks ago
Bug Fixes - fix NatChip component scroll issue ([8334348](https://github.com/natura-cosmeticos/natds-ios/commit/8334348e7ae25038e6747990bec5d9afb7e80ab3))
7.10.16
31 weeks ago
- downgrade ios version from 11 to 10
31 weeks ago
- New Natura log - New Casa&Estilo identity
7.1.3
31 weeks ago
## What's new - removing bodyFont @Design-System-Natura (#385) - Theme updated @Design-System-Natura (#384) - Update Matchfile @xald (#383) - Dsy 3141 new logo @Design-System-Natura (#382) - fix: logo consultoria de beleza updated @cloudsystec (#381) - Fix/tab-color @acc-mateus-gomes (#380) - Feature/consultoria-de-beleza-logo @acc-mateus-gomes (#379) - Feature/tab-elevation @acc-mateus-gomes (#378) - fix: remove duplicated files @acc-mateus-gomes (#376) - feat: add consultoria de beleza theme @acc-mateus-gomes (#375) - Bugfix/swiftlint fix @acc-mateus-gomes (#374) - fix: removing hidden folder that might be breaking the versioning for… @gccavalcanti (#373) - Update/scrollable tab @MateusNat (#370) - Feat: Alert component @gccavalcanti (#369) - [DSY-2765] Feat/component chip @peslopes (#366) - [DSY-2646] [SampleApp] Moved searchBar cell from components list to inside AppBar cell @peslopes (#365) - [DSY-1483] Feat/component select @peslopes (#363) - [DSY-2735] feat: add method to configure text field icon button @peslopes (#362) - [DSY-1754] Remove buggy collapse animation @peslopes (#361) - docs: update NatSwitch docs @peslopes (#360) - [DSY-1293] Feature/natSwitch @peslopes (#359) - [DSY-2746] Feat: add NatRadioButtonGroup class to manage radio buttons group behavior and handlers @peslopes (#358)
7.1.2
1 year ago
## What's new - Internal changes for docs automation @penelopearaujo (#357) - chore: fix bump version script to also update docs @penelopearaujo (#356) - [DSY-2242] Automate documentation update @penelopearaujo (#354)
iOS
splitio/ios-client 2.24.0-rc1
iOS SDK client for Split Software
⭐️ 9
🕓 2 hours ago
iOS macOS watchOS tvOS
grpc/grpc v1.60.0
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
⭐️ 39,516
🕓 3 hours ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
Release v1.60.0
11 hours ago
This is release 1.60.0 ([gjallarhorn](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. Core --- - Implemented dualstack IPv4 and IPv6 backend support, as per [draft gRFC A61](https://github.com/grpc/proposal/pull/356). xDS support currently guarded by `GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS` env var. - Dropped Bazel 5 support. ([#34813](https://github.com/grpc/grpc/pull/34813)) - [deps] Upgrade protobuf version to v25.0. ([#34513](https://github.com/grpc/grpc/pull/34513)) - [Security - Revocation] Crl Directory Watcher Implementation. ([#34749](https://github.com/grpc/grpc/pull/34749)) - [server] Cap size of pending request queue with RealRequestMatcher. ([#34782](https://github.com/grpc/grpc/pull/34782)) - [chttp2] Fix outgoing data stats. ([#34693](https://github.com/grpc/grpc/pull/34693)) - [EventEngine] Enable Posix EventEngine Listener on all builds. ([#34748](https://github.com/grpc/grpc/pull/34748)) - [EventEngine] Enable Windows EventEngine Listener on all builds. ([#34436](https://github.com/grpc/grpc/pull/34436)) - [chttp2] Alternative protection for too many streams in the system. ([#34697](https://github.com/grpc/grpc/pull/34697)) - [Proxy] Support for setting proxy for addresses. ([#34617](https://github.com/grpc/grpc/pull/34617)) - [client idleness] client channels go idle after 30 minutes by default. ([#34653](https://github.com/grpc/grpc/pull/34653)) - [chttp2] Add an experiment to separate liveness checks from ping timeouts. ([#34647](https://github.com/grpc/grpc/pull/34647)) - [chttp2] Tarpit invalid requests. ([#34641](https://github.com/grpc/grpc/pull/34641)) - [chttp2] Enforce settings acks. ([#34640](https://github.com/grpc/grpc/pull/34640)) - [chttp2] Limit work per read cycle. ([#34639](https://github.com/grpc/grpc/pull/34639)) - [chttp2] Limit request count before receiving settings ack. ([#34638](https://github.com/grpc/grpc/pull/34638)) - [chttp2] Randomly ping on RST_STREAM. ([#34637](https://github.com/grpc/grpc/pull/34637)) C++ --- - [xds] C++ XdsServerBuilder Remove src/... header dependency from public header. ([#34790](https://github.com/grpc/grpc/pull/34790)) - [reflection] Add v1 reflection. ([#34535](https://github.com/grpc/grpc/pull/34535)) C# --- - [csharp] Grpc.Tools documentation for sharing proto files between projects and nuget packages. ([#34521](https://github.com/grpc/grpc/pull/34521)) Ruby --- - [ruby] create debug symbol packages. ([#34632](https://github.com/grpc/grpc/pull/34632))
Release v1.59.3
1 week ago
This is release gRPC Core 1.59.3 (generative). For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes. Core --- - [Security - Revocation] Crl backport to 1.59. ([#34926](https://github.com/grpc/grpc/pull/34926))
Release v1.60.0-pre1
2 weeks ago
This is a prerelease of gRPC Core 1.60.0 (gjallarhorn). For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This prerelease contains refinements, improvements, and bug fixes.
Release v1.59.2
4 weeks ago
This is release 1.59.2 ([generative](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. Core --- - [chttp2] Rollup of fixes for CVE-2023-44487. ([#34763](https://github.com/grpc/grpc/pull/34763))
Release v1.58.2
4 weeks ago
This is release 1.58.2 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34553
Release v1.57.1
4 weeks ago
This is release 1.57.1 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34557
Release v1.56.3
4 weeks ago
This is release 1.56.3 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34558
Release v1.55.4
4 weeks ago
This is release 1.55.4 of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug https://github.com/grpc/grpc/pull/34559
Release v1.59.1
7 weeks ago
This is release 1.59.1 ([generative](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. C++ --- - Fix MakeCordFromSlice memory bug #34552
Release v1.59.0
8 weeks ago
This is release 1.59.0 ([generative](https://github.com/grpc/grpc/blob/master/doc/g_stands_for.md)) of gRPC Core. For gRPC documentation, see [grpc.io](https://grpc.io/). For previous releases, see [Releases](https://github.com/grpc/grpc/releases). This release contains refinements, improvements, and bug fixes, with highlights listed below. Core --- - [Release] Bump core version 202309251628. ([#34476](https://github.com/grpc/grpc/pull/34476)) - [xds ssa] Remove environment variable protection for stateful affinity. ([#34435](https://github.com/grpc/grpc/pull/34435)) - [windows DNS] Simplify c-ares Windows code. ([#33965](https://github.com/grpc/grpc/pull/33965)) - [c-ares] fix spin loop bug when c-ares gives up on a socket that still has data left in its read buffer. ([#34185](https://github.com/grpc/grpc/pull/34185)) - [Deps] Adding upb as a submodule. ([#34199](https://github.com/grpc/grpc/pull/34199)) - [EventEngine] Update Cancel contract on closure deletion timeline. ([#34167](https://github.com/grpc/grpc/pull/34167)) C# --- - [csharp codegen] Handle empty base_namespace option value to fix #34113. ([#34137](https://github.com/grpc/grpc/pull/34137)) Python --- - [Python 3.12] Support Python 3.12. ([#34398](https://github.com/grpc/grpc/pull/34398)) - [Python 3.12] Deprecate distutil. ([#34186](https://github.com/grpc/grpc/pull/34186)) Ruby --- - [ruby] Fix linking errors on x86-darwin. ([#34134](https://github.com/grpc/grpc/pull/34134)) - [Ruby] replace strdup with gpr_strdup. ([#34177](https://github.com/grpc/grpc/pull/34177)) - [ruby] drop ruby 2.6 support. ([#34198](https://github.com/grpc/grpc/pull/34198))
getlipa/lipa-lightning-lib-swift v0.27.0-beta
Auxiliary repository used to deliver the Lipa Lightning Lib (3L) as a Swift Package
⭐️ 0
🕓 4 hours ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
v0.27.0-beta
17 hours ago
This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-lightning-lib
v0.26.1-beta
4 days ago
This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-lightning-lib
v0.26.0-beta
4 days ago
This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-lightning-lib
v0.25.1-beta
6 days ago
This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-lightning-lib
v0.25.0-beta
1 week ago
This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-lightning-lib
v0.24.2-beta
1 week ago
This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-lightning-lib
v0.24.1-beta
1 week ago
This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-lightning-lib
v0.24.0-beta
1 week ago
This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-lightning-lib
v0.23.0-beta
2 weeks ago
This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-lightning-lib
v0.22.1-beta
2 weeks ago
This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-lightning-lib
iOS
miLibris/ios-milibris-reader-sdk v1.4.0
Reader SDK for the miLibris platform
⭐️ 1
🕓 4 hours ago
🔖 Release Notes

Releases

The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
1.4.0
14 hours ago
**Features** - [TC-6295] Filter advertisements in reader capsule, mini-summary and summary - [TC-6295] Add advertisement templates **Improvements** - [TC-6371] Fix spelling
1.3.0
8 weeks ago
**Features** - [TC-5967] Support audio background mode for text-to-speech - [TC-6379] Add config to disable the summary in the reader and article reader - Add an optional article search feature in the summary
1.2.0
14 weeks ago
**Features** - [TC-6281] Add new utility method to hide the logo capsule - [TC-6285] Update font for `<em>` tags
1.1.0
22 weeks ago
**Features** - [TC-5651] Add article source link in articles - [TC-6036] Implement dropcaps in miLibris datasource - [TC-6040] Add print action
0.5.0
36 weeks ago
**Breaking** - [TC-5940] Make the miLibris datasource internal
0.4.0
1 year ago
**Features** - [TC-5476] Add reader tutorial
0.3.1
1 year ago
**Improvements** - [TC-5282] Do not override box highlight color with customer branding, update default highlight color
0.3.0
1 year ago
**Features** - [TC-4494] Add HTML enrichments - [TC-3570] Add delegate method to track HTML enrichments usage - [TC-4705] Add accessibility identifiers - [TC-4484] Add internal video enrichments - [TC-3566] Add delegate method to track video enrichments usage - [TC-4480] Add internal audio enrichments - [TC-4497] Add slideshow enrichments - [TC-4486] Add external video enrichments - [TC-4616] Add licence key check - [TC-4617] Prepare SDK for distribution
0.0.1
1 year ago
This a test release
iOS

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics