Swiftpack.co - Search 16,103 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.63.0-pre2
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
⭐️ 40,706
🕓 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.
Release v1.63.0-pre2
4 days ago
This is a prerelease of gRPC Core 1.63.0 (giggle). 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.62.2
4 days ago
This is release gRPC Core 1.62.2 (guardian). 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. Python --- * [Fix Python Deadlock] Guard grpc_google_default_credentials_create with nogil by @XuanWang-Amos in https://github.com/grpc/grpc/pull/36376 **Full Changelog**: https://github.com/grpc/grpc/compare/v1.62.1...v1.62.2
Release v1.63.0-pre1
1 week ago
This is a prerelease of gRPC Core 1.63.0 (giggle). 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.62.1
6 weeks ago
This is release gRPC Core 1.62.1 (guardian). 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.
Release v1.61.2
5 weeks ago
This is release gRPC Core 1.61.2 (grand). 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.
Release v1.62.0
8 weeks ago
This is release 1.62.0 ([guardian](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 --- - [metadata] Allow non application/grpc content-type values. ([#35824](https://github.com/grpc/grpc/pull/35824)) - [BoringSSL] Update third_party/boringssl-with-bazel. ([#35768](https://github.com/grpc/grpc/pull/35768)) - [GPR] Removed GPR_BACKWARDS_COMPATIBILITY_MODE. ([#35602](https://github.com/grpc/grpc/pull/35602)) Python --- - [Build] Strip armv7 artifacts. ([#35832](https://github.com/grpc/grpc/pull/35832)) - [Python AIO] Handle DeprecationWarnings when get current loop. ([#35583](https://github.com/grpc/grpc/pull/35583)) - [Python AIO] Raise resource_exhausted error in case of concurrent RPC limit exceeded. ([#35376](https://github.com/grpc/grpc/pull/35376)) - [Python O11y] Build and distrib O11y package. ([#35578](https://github.com/grpc/grpc/pull/35578)) - [Python setuptools] Import error from distutils for lower version of setuptools. ([#35561](https://github.com/grpc/grpc/pull/35561)) - [ruby] Fix use-after-free for post-fork channel recreation. ([#35488](https://github.com/grpc/grpc/pull/35488)) Ruby --- - [ruby] Build/test ruby 3.3 and build native gems with Ruby 3.3 support. ([#35399](https://github.com/grpc/grpc/pull/35399))
Release v1.62.0-pre1
9 weeks ago
This is a prerelease of gRPC Core 1.62.0 (guardian). 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. Python --- - `grpcio_observability` package is not published in this release due to an issue in packaging.
Release v1.61.1
9 weeks ago
This is release gRPC Core 1.61.1 (grand). 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 --- - [Deps] Fix the issue with new Abseil #35883
Release v1.59.4
10 weeks ago
This is release gRPC Core 1.59.4 (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] Add set min/max TLS version APIs to TLS credentials APIs. (#34861)
Release v1.56.4
10 weeks ago
This is release gRPC Core 1.56.4 (galvanized). 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] Add set min/max TLS version APIs to TLS credentials APIs. (#34861)
ggerganov/whisper.cpp v1.5.5
Port of OpenAI's Whisper model in C/C++
⭐️ 30,990
🕓 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.
v1.5.5
6 days ago
## Overview Many small incremental updates + Token level timestamps with DTW by @denersc in https://github.com/ggerganov/whisper.cpp/pull/1485 Feedback is welcome! **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.4...v1.5.5 ## What's Changed * server : fix server temperature + add temperature_inc by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1729 * main : add cli option to disable system prints by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1740 * server: add request path by @eschmidbauer in https://github.com/ggerganov/whisper.cpp/pull/1741 * Optional Piper TTS support for talk-llama example. by @RhinoDevel in https://github.com/ggerganov/whisper.cpp/pull/1749 * fix/1748 by @nank1ro in https://github.com/ggerganov/whisper.cpp/pull/1750 * Don't compute timestamps when not printing them. by @ghindle in https://github.com/ggerganov/whisper.cpp/pull/1755 * Add more parameters to server api by @ghindle in https://github.com/ggerganov/whisper.cpp/pull/1754 * Add SetInitialPrompt method to go bindings by @blib in https://github.com/ggerganov/whisper.cpp/pull/1753 * ggml : fix 32-bit ARM compat for IQ2_XS by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1758 * refactor: get all scripts to be POSIX Compliant by @sonphantrung in https://github.com/ggerganov/whisper.cpp/pull/1725 * whisper : load the model into multiple buffers of max size 1GB by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1763 * rebase against your -np changes (thx) and add better python file to be used on the command line or as library by @contractorwolf in https://github.com/ggerganov/whisper.cpp/pull/1744 * examples/talk-llama: Add optional commandline parameter to set the bot name. by @RhinoDevel in https://github.com/ggerganov/whisper.cpp/pull/1764 * server : fix building and simplify lib deps on Windows by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1772 * talk-llama: optional wake-up command and audio confirmation by @Rakksor in https://github.com/ggerganov/whisper.cpp/pull/1765 * examples/server: implement "verbose_json" format with token details by @rmmh in https://github.com/ggerganov/whisper.cpp/pull/1781 * whisper.android: Return output from benchmarks by @luciferous in https://github.com/ggerganov/whisper.cpp/pull/1785 * libwhisper.so should be position independent by @trixirt in https://github.com/ggerganov/whisper.cpp/pull/1792 * Docs: try to make model options / model install methods clearer by @mrienstra in https://github.com/ggerganov/whisper.cpp/pull/1806 * common : fix input buffer check by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1812 * Update Makefile by @jwijffels in https://github.com/ggerganov/whisper.cpp/pull/1813 * Add fields to `verbose_json` response and show examples on the home page by @JacobLinCool in https://github.com/ggerganov/whisper.cpp/pull/1802 * common: fix wav buffer detection by @JacobLinCool in https://github.com/ggerganov/whisper.cpp/pull/1819 * Add macOS deployment target option to Makefile by @didzis in https://github.com/ggerganov/whisper.cpp/pull/1839 * Expose CUDA device setting in public API by @didzis in https://github.com/ggerganov/whisper.cpp/pull/1840 * whisper.android: How to build with CLBlast by @luciferous in https://github.com/ggerganov/whisper.cpp/pull/1809 * server: Allow CORS request with authorization headers by @valenting in https://github.com/ggerganov/whisper.cpp/pull/1850 * Embed Metal library source into compiled binary by @didzis in https://github.com/ggerganov/whisper.cpp/pull/1842 * added audio_ctx argument to main and server examples by @dscripka in https://github.com/ggerganov/whisper.cpp/pull/1857 * whisper : fix external encoder by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1860 * swift : package no longer use ggml dependency by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1861 * fix openvino setup docs by @jumpers775 in https://github.com/ggerganov/whisper.cpp/pull/1874 * clean up common code in examples by @felrock in https://github.com/ggerganov/whisper.cpp/pull/1871 * main : check if input files exist before proceeding by @Theldus in https://github.com/ggerganov/whisper.cpp/pull/1872 * Linking issue fix via Makefile when CUBLAS enabled in the WSL #1876 by @lbluep in https://github.com/ggerganov/whisper.cpp/pull/1878 * main : fix file existence check in main.cpp by @Theldus in https://github.com/ggerganov/whisper.cpp/pull/1889 * openvino : fix convert-whisper-to-openvino.py for v2023.0.0 (#1870) by @st-gr in https://github.com/ggerganov/whisper.cpp/pull/1890 * ggml : 32-bit arm compat by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1891 * Add SYCL logic in whisper by @abhilash1910 in https://github.com/ggerganov/whisper.cpp/pull/1863 * talk and talk-llama: Pass text_to_speak as a file by @tamo in https://github.com/ggerganov/whisper.cpp/pull/1865 * Stream.wasm: Fix invalid memory access when no segments are returned by @Andrews54757 in https://github.com/ggerganov/whisper.cpp/pull/1902 * Update README to Recommend MacOS Sonoma for Core ML to avoid hallucination by @gavin1818 in https://github.com/ggerganov/whisper.cpp/pull/1917 * Add library versioning by @kenneth-ge in https://github.com/ggerganov/whisper.cpp/pull/1352 * Fix SF(segment fault) issue in Android JNI by @zhouwg in https://github.com/ggerganov/whisper.cpp/pull/1929 * Fix typo in source file whisper.cpp by @zhouwg in https://github.com/ggerganov/whisper.cpp/pull/1925 * bench:fix typo by @zhouwg in https://github.com/ggerganov/whisper.cpp/pull/1933 * Auto lowercase language parameter by @F1L1Pv2 in https://github.com/ggerganov/whisper.cpp/pull/1928 * ggml : try fix 32-bit arm compat by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1938 * whisper : make beam candidate sort more stable by @josharian in https://github.com/ggerganov/whisper.cpp/pull/1943 * bindings/go : add linker flags to make metal work by @josharian in https://github.com/ggerganov/whisper.cpp/pull/1944 * whisper : improve beam search candidate diversity by @josharian in https://github.com/ggerganov/whisper.cpp/pull/1947 * whisper : document whisper_batch.n_seq_id by @josharian in https://github.com/ggerganov/whisper.cpp/pull/1942 * Rename --audio-context to --audio-ctx, as per help text by @joliss in https://github.com/ggerganov/whisper.cpp/pull/1953 * [DRAFT] Token level timestamps with DTW (#375) by @denersc in https://github.com/ggerganov/whisper.cpp/pull/1485 * Fedora dependencies needed (SDL2) by @Man2Dev in https://github.com/ggerganov/whisper.cpp/pull/1970 * libcuda.so.1 in PATH in Docker Container by @tiagofassoni in https://github.com/ggerganov/whisper.cpp/pull/1966 * ruby : fix build by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1980 * Improve support for distil-large-v3 by @sanchit-gandhi in https://github.com/ggerganov/whisper.cpp/pull/1982 * whisper : improve handling of prompts by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1981 * sync : ggml by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/2001 * Implemented command-style grammar in the main example. by @ulatekh in https://github.com/ggerganov/whisper.cpp/pull/1998 * Use pkg-config for OpenBLAS by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1778 * ci : add building in MSYS2 environments (Windows) by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1994 * Support CUDA versions < 11.1 by @primenko-v in https://github.com/ggerganov/whisper.cpp/pull/2020 * Create solution folders in the CMake build by @ulatekh in https://github.com/ggerganov/whisper.cpp/pull/2004 * Allow a regular expression to describe tokens to suppress by @ulatekh in https://github.com/ggerganov/whisper.cpp/pull/1997 * "main" example now allows a response-file as the sole parameter by @ulatekh in https://github.com/ggerganov/whisper.cpp/pull/2019 * Support for CPU BLAS build via Intel MKL by @slashlib in https://github.com/ggerganov/whisper.cpp/pull/2024 * Set stdin to binary mode on Windows. Fixes #2023 by @rotemdan in https://github.com/ggerganov/whisper.cpp/pull/2025 * Fix file-handle leak in read_wav() by @ulatekh in https://github.com/ggerganov/whisper.cpp/pull/2026 * Fix DTW memory access by @bradmurray-dt in https://github.com/ggerganov/whisper.cpp/pull/2012 * whisper: update grammar-parser.cpp by @eltociear in https://github.com/ggerganov/whisper.cpp/pull/2058 * fix missing reference to "model" variable in actual shell command run in whisper.nvim by @sixcircuit in https://github.com/ggerganov/whisper.cpp/pull/2049 * build : detect AVX512 in Makefile, add AVX512 option in CMake by @didzis in https://github.com/ggerganov/whisper.cpp/pull/2043 * feature/no timestamps node by @pprobst in https://github.com/ggerganov/whisper.cpp/pull/2048 * Update embedded Metal library generation process to include dependency by @didzis in https://github.com/ggerganov/whisper.cpp/pull/2045 * server.cpp: add dtw by @eschmidbauer in https://github.com/ggerganov/whisper.cpp/pull/2044 ## New Contributors * @eschmidbauer made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1741 * @RhinoDevel made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1749 * @nank1ro made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1750 * @ghindle made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1755 * @blib made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1753 * @sonphantrung made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1725 * @contractorwolf made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1744 * @Rakksor made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1765 * @rmmh made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1781 * @luciferous made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1785 * @trixirt made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1792 * @mrienstra made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1806 * @JacobLinCool made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1802 * @valenting made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1850 * @dscripka made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1857 * @jumpers775 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1874 * @Theldus made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1872 * @lbluep made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1878 * @st-gr made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1890 * @abhilash1910 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1863 * @Andrews54757 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1902 * @gavin1818 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1917 * @kenneth-ge made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1352 * @zhouwg made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1929 * @F1L1Pv2 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1928 * @josharian made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1943 * @joliss made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1953 * @Man2Dev made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1970 * @tiagofassoni made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1966 * @sanchit-gandhi made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1982 * @ulatekh made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1998 * @primenko-v made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2020 * @slashlib made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2024 * @rotemdan made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2025 * @bradmurray-dt made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2012 * @sixcircuit made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2049 * @pprobst made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2048 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.4...v1.5.5
v1.5.4
15 weeks ago
## Overview - Faster Core ML ANE models (#1716) - CUDA bugfix causing random erros in the transcription - Fix SwiftUI example build **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.3...v1.5.4
v1.5.3
15 weeks ago
## Overview Minor maintenance release: - Fix CUDA issues where the transcription produces garbage - FIX quantized models to work with CUDA backend - Allow to use `whisper.cpp` and `llama.cpp` together in SwiftUI projects ## What's Changed * Update bench.py by @ForkedInTime in https://github.com/ggerganov/whisper.cpp/pull/1655 * cmake : Resolve quantized model issue when CUBLAS enabled by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1667 * examples : Revert CMakeLists.txt for talk-llama by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1669 * CI : Add coverage for talk-llama when WHISPER_CUBLAS=1 by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1672 * ci: build and push docker image by @OpenWaygate in https://github.com/ggerganov/whisper.cpp/pull/1674 * sync : ggml (ggml_scale, ggml_row_size, etc.) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1677 * Replace `WHISPER_PRINT_DEBUG` with `WHISPER_LOG_DEBUG` by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1681 * download: Fix large q5 model name by @dimopep in https://github.com/ggerganov/whisper.cpp/pull/1695 * sync : ggml (VMM, sync-ggml-am.sh, dotprod ARM fixes) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1691 * whisper : replace `tensor->n_dims` with `ggml_n_dims(tensor)` by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1694 * Build with CLBlast by @tamo in https://github.com/ggerganov/whisper.cpp/pull/1576 * docker : Fix the Publishing of the CUDA Docker Image by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1704 * emscripten: fix "Stack Overflow!" by @Huguet57 in https://github.com/ggerganov/whisper.cpp/pull/1713 * sync : ggml by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1717 * Add error handling to graph_compute by @finnvoor in https://github.com/ggerganov/whisper.cpp/pull/1714 * Updates Package.swift to use ggml as package dependency by @1-ashraful-islam in https://github.com/ggerganov/whisper.cpp/pull/1701 ## New Contributors * @ForkedInTime made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1655 * @OpenWaygate made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1674 * @dimopep made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1695 * @Huguet57 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1713 * @1-ashraful-islam made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1701 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.2...v1.5.3
v1.5.2
18 weeks ago
## Overview Minor maintenance release: - Re-enable CPU BLAS processing after fixing a regression (#1583) Add new example: [wchess](https://github.com/ggerganov/whisper.cpp/tree/master/examples/wchess) https://github.com/ggerganov/whisper.cpp/assets/1991296/c2b2f03c-9684-49f3-8106-357d2d4e67fa Shoutout to @fraxy-v (implementation) and @ejones (grammar) for making it work! ## What's Changed * automatically convert audio on the server by @sapoepsilon in https://github.com/ggerganov/whisper.cpp/pull/1539 * CI : Rectify the Clang-Related workflow issues by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1551 * CI : Add CUDA 11.8.0 support by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1554 * Update main program help info by @bebound in https://github.com/ggerganov/whisper.cpp/pull/1560 * Set default CORS headers to allow all by @kasumi-1 in https://github.com/ggerganov/whisper.cpp/pull/1567 * cmake : install required ggml.h header by @gjasny in https://github.com/ggerganov/whisper.cpp/pull/1568 * Backport .srt output format to examples/server by @osdrv in https://github.com/ggerganov/whisper.cpp/pull/1565 * Added support for .vtt format to Whisper server by @aleksanderandrzejewski in https://github.com/ggerganov/whisper.cpp/pull/1578 * ggml : re-enable blas for src0 != F32 by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1583 * Fix 32-bit compiler warning by @Digipom in https://github.com/ggerganov/whisper.cpp/pull/1575 * Remove #if arch(arm) check in Swift Package Manager by @Finnvoor in https://github.com/ggerganov/whisper.cpp/pull/1561 * Pass max-len argument to server wparams by @osdrv in https://github.com/ggerganov/whisper.cpp/pull/1574 * sync : ggml (new ops, new backend, etc) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1602 * Fix `ggml_metal_log` on Intel macs by @Finnvoor in https://github.com/ggerganov/whisper.cpp/pull/1606 * Update CMakeLists.txt by @Kreijstal in https://github.com/ggerganov/whisper.cpp/pull/1615 * target windows 8 or above for prefetchVirtualMemory in llama-talk by @Kreijstal in https://github.com/ggerganov/whisper.cpp/pull/1617 * sync : ggml (Metal fixes, new ops, tests) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1633 * wchess: whisper assisted chess by @fraxy-v in https://github.com/ggerganov/whisper.cpp/pull/1595 ## New Contributors * @sapoepsilon made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1539 * @bebound made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1560 * @kasumi-1 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1567 * @gjasny made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1568 * @osdrv made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1565 * @aleksanderandrzejewski made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1578 * @Kreijstal made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1615 * @fraxy-v made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1595 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.1...v1.5.2
v1.5.1
21 weeks 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
22 weeks 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
23 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
51 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
1 year 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
1 year 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>
iOS macOS watchOS tvOS
airbnb/lottie-ios 4.4.3
An iOS library to natively render After Effects vector animations
⭐️ 25,130
🕓 6 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.
4.4.3
6 days ago
### Bug fixes in 4.4.3 * Fix issue where animation size could be incorrect after loading async animation (https://github.com/airbnb/lottie-ios/pull/2379) * Update NSPrivacyAccessedAPITypeReasons in privacy manifest (https://github.com/airbnb/lottie-ios/pull/2380) * Include animation duration when computing cost/complexity of Core Animation time remapping (https://github.com/airbnb/lottie-ios/pull/2381) ### New features in 4.4.0 * Add privacy manifest (https://github.com/airbnb/lottie-ios/pull/2252) * Codesign Lottie.xcframework (https://github.com/airbnb/lottie-ios/pull/2259) * Add time remapping support to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/2286) * Add official visionOS support to lottie-ios repo (https://github.com/airbnb/lottie-ios/pull/2287) * lottie-spm now supports visionOS (https://github.com/airbnb/lottie-spm/pull/12) * Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (https://github.com/airbnb/lottie-ios/pull/2260) **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.4.2...4.4.3
4.4.2
2 weeks ago
### Changes in 4.4.2 * Update minimum deployment target to iOS 13.0 / macOS 10.15 (https://github.com/airbnb/lottie-ios/pull/2322) * Add privacy manifest to lottie-spm repo (https://github.com/airbnb/lottie-spm/pull/23) * Add visionOS support to Cocoapods podspec (https://github.com/airbnb/lottie-ios/pull/2348) * Fix incorrect usage of `State(initialValue:)` in `LottieView` (https://github.com/airbnb/lottie-ios/pull/2357) * Use correct version number when building XCFramework bundle (https://github.com/airbnb/lottie-ios/pull/2341) ### New features in 4.4.0 * Add privacy manifest (https://github.com/airbnb/lottie-ios/pull/2252) * Codesign Lottie.xcframework (https://github.com/airbnb/lottie-ios/pull/2259) * Add time remapping support to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/2286) * Add official visionOS support to lottie-ios repo (https://github.com/airbnb/lottie-ios/pull/2287) * lottie-spm now supports visionOS (https://github.com/airbnb/lottie-spm/pull/12) * Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (https://github.com/airbnb/lottie-ios/pull/2260) **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.4.1...4.4.2
4.4.1
8 weeks ago
### Bug fixes in 4.4.1 * Replace os check with canImport so classes are available on visionOS (https://github.com/airbnb/lottie-ios/pull/2294) * Omit privacy manifest from source files in podspec (https://github.com/airbnb/lottie-ios/pull/2307) * Fix crash in Main Thread rendering engine path interpolation implementation (https://github.com/airbnb/lottie-ios/pull/2305) * Fix warning from invalid character in Cocoapods resource bundle identifier (https://github.com/airbnb/lottie-ios/pull/2317) * Fix infinite loop when setting `LottieAnimationView.viewportFrame` (https://github.com/airbnb/lottie-ios/pull/2316) ### New features in 4.4.0 * Add privacy manifest (https://github.com/airbnb/lottie-ios/pull/2252) * Codesign Lottie.xcframework (https://github.com/airbnb/lottie-ios/pull/2259) * Add time remapping support to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/2286) * Add official visionOS support to lottie-ios repo (https://github.com/airbnb/lottie-ios/pull/2287) * lottie-spm now supports visionOS (https://github.com/airbnb/lottie-spm/pull/12) * Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (https://github.com/airbnb/lottie-ios/pull/2260) **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.4.0...4.4.1
4.4.0
12 weeks ago
## New features * Add privacy manifest (https://github.com/airbnb/lottie-ios/pull/2252) * Codesign Lottie.xcframework (https://github.com/airbnb/lottie-ios/pull/2259) * Add time remapping support to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/2286) * Add official visionOS support to lottie-ios repo (https://github.com/airbnb/lottie-ios/pull/2287) * lottie-spm now supports visionOS (https://github.com/airbnb/lottie-spm/pull/12) * Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (https://github.com/airbnb/lottie-ios/pull/2260) ## Bug fixes * Update LottieView to display placeholder using `overlay` instead of `ZStack` (https://github.com/airbnb/lottie-ios/pull/2289) * Fix issue where Core Animation rendering engine couldn't display last frame of animation when paused (https://github.com/airbnb/lottie-ios/pull/2254) * Do not create `DotLottieImageProvider` instance if there's no image files (https://github.com/airbnb/lottie-ios/pull/2271) * Mark DotLottieCache as Sendable (https://github.com/airbnb/lottie-ios/pull/2245) * Fix issue where AnimationKeypath in SolidLayer could be incorrect (https://github.com/airbnb/lottie-ios/pull/2278) * Fix issue where Repeater could be displayed incorrectly (https://github.com/airbnb/lottie-ios/pull/2276) * Include dSYMs in xcframework build (https://github.com/airbnb/lottie-ios/pull/2284) * Fix parsing issue, add support for DotLottieConfiguration in SwiftUI LottieView (https://github.com/airbnb/lottie-ios/pull/2277) * Fix issue where DotLottieImageProvider didn't handle base64 images (https://github.com/airbnb/lottie-ios/pull/2283) * Fix issue where manually interpolated keyframes could animate incorrectly (https://github.com/airbnb/lottie-ios/pull/2285) **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.3.4...4.4.0
4.3.4
20 weeks ago
## What's Changed * Fix parsing regression in 4.3.0 from addition of parsing layer effects by @calda in https://github.com/airbnb/lottie-ios/pull/2208 * Remove old animation layer when creating a new animation layer by @junjielu in https://github.com/airbnb/lottie-ios/pull/2214 * Add configuration setting to remove animated bounds changes by @thedrick in https://github.com/airbnb/lottie-ios/pull/2218 * Change pod dependencies `SwiftUI` and `Combine` to `weak` to ensure compatibility with iOS 12 by @florianrhein in https://github.com/airbnb/lottie-ios/pull/2219 * Fix issue where Repeater would be ignored if not at top level by @calda in https://github.com/airbnb/lottie-ios/pull/2221 * Replace `UIScreen.main` to get display scale on iOS 13.0 and later (#2215) by @hyun99999 in https://github.com/airbnb/lottie-ios/pull/2216 * Dispatch dot lottie file loading onto a single serial queue by @erichoracek in https://github.com/airbnb/lottie-ios/pull/2229 * Clean up unused property in InvertedMatteLayer by @hanton in https://github.com/airbnb/lottie-ios/pull/2241 * Fix issue where LottieView animation would restart from beginning after backgrounding app by @calda in https://github.com/airbnb/lottie-ios/pull/2237 **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.3.3...4.3.4
4.3.3
29 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
29 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
30 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
31 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
51 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
iOS macOS tvOS
ReactiveX/RxSwift 6.7.0
Reactive Programming in Swift
⭐️ 24,158
🕓 20 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.
Seder 🌾
Yesterday
## RxSwift 6.7.0 🌾 - Add support for visionOS (Thanks @nighthawk) #2564 - Align CocoaPods macOS deployment target to 10.10 (Like SPM) - Link XCTest weakly on CocoaPods to allow static linking (Thanks @mkj-is) #2587 - Fix and align factory closure runtimes (Thanks @danielt1263) #2534 - Fix a possible crash in RxDelegateProxy (Thanks @sejal-hotstar) #2546 - Fix release build warning from missing explicit imports (Thanks @drewster99) #2555 - Various code formatting and documentation fixes (Thanks @sanghun0724, @nicholaskim94, @fanqiaojun, @honghoker, @annie-gupta, @woin2ee, @danielt1263)
Onyx 🪨
49 weeks ago
## RxSwift 6.6.0 🪨 - New helpful conversions to `Infallible` - Fix an issue with continuation leak for `async/await` bridge - Improve atomicity of `BooleanDisposable` - Crash workaround for `Table/CollectionViewDelegateProxy` - New `Infallible` helpers for `CombineLatest` - More minor fixes and updates - Support catalyst for xcframework distribution
Atlas
2 years ago
## RxSwift 6.5.0 - Swift Concurrency is here! 🎊💯 You can now use `await` on `Observable`-conforming objects (as well as `Driver`, `Signal`, `Infallible`, `Single`, `Completable`) using the following syntax: ```swift do { for try await value in observable.values { print(value) // Next event } // Completed here } catch { // Error event print("An error occurred:", error.localizedDescription) } ``` Check out the [full documentation](https://github.com/ReactiveX/RxSwift/blob/main/Documentation/SwiftConcurrency.md) for additional information: https://github.com/ReactiveX/RxSwift/blob/main/Documentation/SwiftConcurrency.md
Ethan.2
2 years ago
Support Xcode 12.5
5.Throwback
2 years ago
RxSwift 5.1.3 is a patch release to provide support for Xcode 12.5 for those who are still using RxSwift 5.x. We recommend upgrading to RxSwift 6.x as soon as possible, regardless.
Ethan.1
3 years ago
# RxSwift 6.1 Thanks to @iDevid, @marcelofabri, @faimin and @danielt1263 for their contributions to this release 🤘 💯 ## Breaking Changes 🔥 - **Deprecate withUnretained for `Driver`** > **Note**: It is extremely rare to ship a breaking change in a patch release, but this is a relatively fresh feature with unusual circumstances. For the full story, see #2290. ## Other changes 🆕 - Add new `subscribe(with:onNext:onError:onCompleted:onDisposed:)` alternatives to `withUnretained`. This exists for all traits and types: `Observable`, `Driver`, `Signal`, `Infallible`, `Completable`, `Single`, `Maybe` #2290 - `Reactive` now supports structs and value-types again, with the dynamic look-up specifically dealing with `AnyObject`s #2285 - Fix xcframework support for `RxCocoa` (Drag in new **RxCocoaRuntime.xcframework** alongside `RxCocoa`) - Freeze `MaybeEvent` and `CompletableEvent` #2271 #2272 - Fix missing **RxCocoaRuntime.h** header in `RxCocoa` podspec #2281 - Remove invalid **libswiftXCTest.dylib** linking to support Xcode 12.5 - Print URLRequest body `httpBody`, regardless of HTTP Method #2288
Ethan
3 years ago
# RxSwift 6 is here! ### New year, new version, new logo - such an exciting day! 🥳 <p align="center"> <img src="https://github.com/ReactiveX/RxSwift/raw/main/assets/RxSwift_Logo.png" width="25%" alt="RxSwift Logo" /> </p> To get a glimpse of what this new major version packs, check out the following blog post: [What's new in RxSwift 6](https://dev.to/freak4pc/what-s-new-in-rxswift-6-2nog) > **Note**: RxSwift 6 supports Xcode 12 and Swift 5.3 and has a minimum deployment target of iOS 9. - All `ReactiveCompatible` objects (`.rx` namespace) get `Binder`s for all properties for free using `@dynamicMemberLookup`. - New `Infallible` object which is identical to `Observable` with the guarantee of never failing. - Add variadic `drive()` and `emit()` to multiple observers and relays. - New `decode(type:decoder:)` operator for `ObsrvableType`s of `Data`. - `SingleEvent` is now simply `Result<Element, Swift.Error>` and methods changed accordingly (e.g. `subscribe(onSuccess:onFailure:)`). - Add `ReplayRelay`. - Add new `withUnretained(_:)` operator. - Add `distinctUntilChanged(at keyPath:)`. - Add `UIApplication` Reactive extensions . - Rename `catchError(_:)` to `catch(_:)`. - Rename `catchErrorJustReturn(_:)` to `catchAndReturn(_:)`. - Rename `elementAt(_:)` to `element(at:)`. - Rename `retryWhen(_:)` to `retry(when:)`. - Rename `takeUntil(_:)` to `take(until:)` and `takeUntil(behavior:_:)` to `take(until:behavior:)`. - Rename `takeWhile(_:)` to `take(while:)` and `takeWhile(behavior:_:)` to `take(while:behavior:)`. - Rename `take(_:)` duration overload to `take(for:)` (e.g. `take(for: .seconds(3))`). - Rename `skipWhile(_:)` to `skip(while:)`. - Rename `takeUntil(_:)` to `take(until:)`. - Rename `observeOn` and `subscribeOn` to `observe(on:)` and `subscribe(on:)`. - `ignoreElements()` now returns `Observable<Never>`. - Make `SharedSequence` conform to `ObservableConvertibleType`. - Add `onDisposed` to `Maybe`, `Completable` and `Single`. - Unify and optimize swizzling extensions into a single one. - Add `DisposeBag` function builder to allow easy comma-less initialization of a `DisposeBag`. - Advance support of XCFrameworks by enabling `BUILD_LIBRARY_FOR_DISTRIBUTION` and cleaning up. - Move URLSession logging settings to a more appropriate URLSession.rx.shouldLogRequest configurable closure. - Many, many, **many** quality of life bugs and fixes.
3 years ago
# RxSwift 6.0.0 RC2 **This is the second and (probably) final Release Candidate of RxSwift 6.** **The official 6.0.0 should be released in the upcoming weeks and should be mostly identical to this.** > **Note**: RxSwift 6 supports Xcode 12 and Swift 5.3 and has a minimum deployment target of iOS 9. Everything in RC1, plus: - Support for XCFrameworks, with binaries now bundled with each release. - Updated tests for new `Infallible` trait. - Fix an issue building for watchOS. - Move `URLSession` logging settings to a more appropriate `URLSession.rx.shouldLogRequest` configurable closure. - README, CI, and additional house cleaning.
6.0.0 RC1
3 years ago
# RxSwift 6.0.0 RC1 **This is the first Release Candidate of RxSwift 6.** > **Note**: RxSwift 6 supports Xcode 12 and Swift 5.3 and has a minimum deployment target of iOS 9. - All `ReactiveCompatible` objects (`.rx` namespace) get `Binder`s for all properties for free using `@dynamicMemberLookup`. - New `Infallible` object which is identical to `Observable` with the guarantee of never failing. - Add variadic `drive()` and `emit()` to multiple observers and relays. - New `decode(type:decoder:)` operator for `ObsrvableType`s of `Data`. - `SingleEvent` is now simply `Result<Element, Swift.Error>` and methods changed accordingly (e.g. `subscribe(onSuccess:onFailure:)`). - Add `ReplayRelay`. - Add `distinctUntilChanged(at keyPath:)`. - Add `UIApplication` Reactive extensions . - Rename `catchError(_:)` to `catch(_:)`. - Rename `catchErrorJustReturn(_:)` to `catchAndReturn(_:)`. - Rename `elementAt(_:)` to `element(at:)`. - Rename `retryWhen(_:)` to `retry(when:)`. - Rename `takeUntil(_:)` to `take(until:)` and `takeUntil(behavior:_:)` to `take(until:behavior:)`. - Rename `takeWhile(_:)` to `take(while:)` and `takeWhile(behavior:_:)` to `take(while:behavior:)`. - Rename `take(_:)` duration overload to `take(for:)` (e.g. `take(for: .seconds(3))`). - Rename `skipWhile(_:)` to `skip(while:)`. - Rename `takeUntil(_:)` to `take(until:)`. - Rename `observeOn` and `subscribeOn` to `observe(on:)` and `subscribe(on:)`. - `ignoreElements()` now returns `Observable<Never>`. - Make `SharedSequence` conform to `ObservableConvertibleType`. - Add `onDisposed` to `Maybe`, `Completable` and `Single`. - Unify and optimize swizzling extensions into a single one. - Add `DisposeBag` function builder to allow easy comma-less initialization of a `DisposeBag`. - Advance support of `xcframework`s by enabling `BUILD_LIBRARY_FOR_DISTRIBUTION` and cleaning up. - Many, many, **many** quality of life bugs and fixes.
Catalyst.1
4 years ago
This update is mandatory if you want to use RxSwift in Xcode 11.4 / Swift 5.2 on macOS. * Make `NSTextView` not weak for Swift 5.2 and up. #2125 * Add `WKWebView` navigation delegate reactive extensions. #2144 Note: - The pre-built Carthage binary was built using Xcode 11.4 / Swift 5.2 - We no longer guarantee support for Xcode 10.x. Maintaining these is counter-intuitive as they're over a year old and are ridden with bugs. Other improvements and additions can be found in the project's [CHANGELOG.md](CHANGELOG.md) ### Note: The pre-built Carthage binary was built using Xcode 11.4.1 / Swift 5.2.2
iOS macOS watchOS tvOS linux macOS iOS
vapor/vapor 4.93.0
💧 A server-side Swift HTTP web framework.
⭐️ 23,777
🕓 14 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.
4.93.0 - Advanced ETag Comparison now supported
Yesterday
## What's Changed Advanced ETag Comparison now supported by @linus-hologram in #3015 > Vapor now supports strong (byte-by-byte) ETag validation and caches ETags for rapid responses. This provides a stronger alternative to the current weak comparison, which only guarantees semantic file equivalence. This new strong comparison is enabled by default and can be deactivated during `FileMiddleware` initialization if needed. This PR closes #2948. > > - `streamFile` method was deprecated and replaced by an alternative returning an `EventLoopFuture` > - vapor’s unit tests were updated to reflect the changes > - documentation was updated to reflect the changes ## New Contributor - @linus-hologram made their first contribution in #3015 🎉 ## Reviewers Thanks to the reviewers for their help: - @vzsg ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.9...4.93.0
4.92.9 - Enabled Request Decompression By Default
Yesterday
## What's Changed Enabled Request Decompression By Default by @dimitribouniol in #3175 > This enables request decompression by default and sets the decompression limit to 25×. ## New Contributor - @dimitribouniol made their first contribution in #3175 🎉 ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.8...4.92.9
4.92.8 - HTTP2 Response Compression/Request Decompression
2 days ago
## What's Changed HTTP2 Response Compression/Request Decompression by @dimitribouniol in #3126 > Fixed an issue where HTTP2 didn’t support response compression and request decompression. > > It seems like it may have been omitted when adding explicit support for HTTP2. Not sure what to do about testing as I couldn’t find any tests for the HTTP1.1 pathway, but I did verify it works in my pet project 😅 > > Fixes #3125 ## New Contributor - @dimitribouniol made their first contribution in #3126 🎉 ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.7...4.92.8
4.92.7 - Don't set ignore status for SIGTERM and SIGINT on Linux
4 days ago
## What's Changed Don't set ignore status for SIGTERM and SIGINT on Linux by @gwynne in #3174 > Changes the behavior of `ServeCommand`’s signal handling setup to more closely match that of [swift-service-lifecycle](https://github.com/swift-server/swift-service-lifecycle/blob/main/Sources/UnixSignals/UnixSignalsSequence.swift#L77-L82). Hopefully finally solves #2502 🤞 ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.6...4.92.7
4.92.6 - Fix typos across the codebase
2 weeks ago
## What's Changed Fix typos across the codebase by @mrs1669 in #3162 > Fixes a number of typos in the codebase. > > ⚠️ the logger for loading environment files now has the correctly spelt label - `dot-env-logger` if you need to search for that ## New Contributor - @mrs1669 made their first contribution in #3162 🎉 ## Reviewers Thanks to the reviewers for their help: - @dimitribouniol ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.5...4.92.6
4.92.5 - Fix some Sendable warnings on 5.10
4 weeks ago
## What's Changed Fix some Sendable warnings on 5.10 by @sidepelican in #3158 > Fix a number of warnings in Swift 5.10 like below. > > Fix simple issues that can be addressed by simply adding `Sendable`. ## New Contributor - @sidepelican made their first contribution in #3158 🎉 ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.4...4.92.5
4.92.4 - Allow `HTTPServer`'s configuration to be dynamically updatable
8 weeks ago
## What's Changed Allow `HTTPServer`'s configuration to be dynamically updatable by @dimitribouniol in #3132 > This allows many aspects of the HTTP server configuration to be changed after the server starts without needing to stop and restart it, or drop existing connections in the process. > > Some things that can now be re-configured include request/response configuration options, HTTP version support, HTTP pipelining, TLS configuration (ie. enabling/disabling, rotating certificates, etc…), server name, metrics reporting, the logger, and the shutdown timer. > > Fixes #3130. ## New Contributor - @dimitribouniol made their first contribution in #3132 🎉 ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.3...4.92.4
4.92.3 - Fix issue when client disconnects midway through a stream
9 weeks ago
## What's Changed Fix issue when client disconnects midway through a stream by @0xTim in #3102 > Fixes an issue when a client disconnects mid way through streaming a request in a Swift concurrency context. In certain cases this would trigger a de-init off the event loop, leading to a crash. > > This fixes the issue by using a lock instead of a loop bound wrapper ## Reviewers Thanks to the reviewers for their help: - @MahdiBM ###### _This patch was released by @0xTim_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.2...4.92.3
4.92.2 - Fix handling of "flag" URL query params
10 weeks ago
## What's Changed Fix handling of "flag" URL query params by @gwynne in #3151 > Flag query parameters (e.g. `/foo?bar&baz`) were broken by [4.75.0](https://github.com/vapor/vapor/releases/tag/4.75.0), and apparently no one noticed for quite awhile. They now work again. Many thanks to @daveanderson for reporting this! > > Fixes #3150. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.1...4.92.2
4.92.1 - Fix URI handling with multiple slashes and variable components.
12 weeks ago
## What's Changed Fix URI handling with multiple slashes and variable components. by @gwynne in #3143 > Resolves some more subtle remaining issues in how `URI` is handled with respect to HTTP requests. > > Fixes #3142. ###### _This patch was released by @gwynne_ **Full Changelog**: https://github.com/vapor/vapor/compare/4.92.0...4.92.1
iOS macOS watchOS tvOS linux macOS iOS
Juanpe/SkeletonView 1.31.0
☠️ An elegant way to show users that something is happening and also prepare them to which contents they are awaiting
⭐️ 12,426
🕓 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.
📦 1.31.0
4 days ago
- **#557**: Fix syntax error in Package.swift - @flopshot #### 🔬Improvements - **#552**: Add PrivacyInfo manifest file - @kdvmgn
📦 1.30.4
1 year ago
- **#520**: Fix skeletons interfering with attributed strings in text-based views - @p4checo - **#519**: Improve German translation of README - @MarshalGeazipp
📦 1.30.3
1 year ago
- **#514**: Update lifecycle handlers - @m1entus
📦 1.30.2
1 year ago
#### 🩹 Bug fixes - **#496**: Bug: CGColor from dynamic UIColor - @Dolphin54rus
📦 1.30.1
1 year ago
#### 🩹 Bug fixes - **#494**: Bugfix/tableview insetgrouped - @tomcheung
📦 1.30.0
1 year ago
#### 🔬Improvements - **#505**: Add prepareViewForSkeleton to SkeletonCollectionViewDataSource - @pakerwreah
📦 1.29.4
1 year ago
#### 💾 Dependency Updates - **#507**: Bump tzinfo from 1.2.5 to 1.2.10 - @dependabot
📦 1.29.3
1 year ago
#### 💾 Dependency Updates - **#497**: Bump cocoapods-downloader from 1.2.2 to 1.6.3 - @dependabot
📦 1.29.2
2 years ago
#### 🩹 Bug fixes - **#483**: Fix crash when text is empty - @Juanpe
📦 1.29.1
2 years ago
#### 🩹 Bug fixes - **#481**: Fix animation when the transition is `.none` - @Juanpe
iOS tvOS
pointfreeco/swift-composable-architecture 1.9.3
A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
⭐️ 11,376
🕓 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.
1.9.3
4 days ago
## What's Changed * Added: Added missing `StackActionOf<R>` type alias (thanks @d-date, https://github.com/pointfreeco/swift-composable-architecture/pull/2906). * Fixed: Cache scoped presentation stores where possible (thanks @lukeredpath, https://github.com/pointfreeco/swift-composable-architecture/pull/2908). * Fixed: Allow "inert" enum state to be observed by having an ever-changing ID (https://github.com/pointfreeco/swift-composable-architecture/pull/2910). * Fixed: Silence SwiftSyntax 510 / Xcode 15.3 warnings (https://github.com/pointfreeco/swift-composable-architecture/pull/2909). * Fixed: Restore `TestStore` autocompletion (https://github.com/pointfreeco/swift-composable-architecture/pull/2923). * Fixed: It is now possible to scope bindings of enum stores to non-reducer cases for sheets and other navigation (https://github.com/pointfreeco/swift-composable-architecture/pull/2943). * Fixed: `package` access modifier support in enum `@Reducer` macro (thanks @samrayner, https://github.com/pointfreeco/swift-composable-architecture/pull/2939). * Fixed: `Effect.publisher` is no longer escaping (https://github.com/pointfreeco/swift-composable-architecture/pull/2968). * Fixed: Add runtime warning diagnostic to catch nested calls to `observe` (https://github.com/pointfreeco/swift-composable-architecture/pull/2996). * Infrastructure: Fix documentation typos (thanks @takehilo, https://github.com/pointfreeco/swift-composable-architecture/pull/2898; https://github.com/pointfreeco/swift-composable-architecture/pull/2944); tutorial fixes (thanks @LRSnowX, https://github.com/pointfreeco/swift-composable-architecture/pull/2808); test store tutorial/documentation fixes (https://github.com/pointfreeco/swift-composable-architecture/pull/2912); fix favorites case study mocks (thanks @beribas, https://github.com/pointfreeco/swift-composable-architecture/pull/2962); improve docs for stack-based navigation (https://github.com/pointfreeco/swift-composable-architecture/pull/2967); fix dismissal in UIKit demos (https://github.com/pointfreeco/swift-composable-architecture/pull/2986) fix shared state case study (thanks @eltociear, https://github.com/pointfreeco/swift-composable-architecture/pull/2994). ## New Contributors * @LRSnowX made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2808 * @beribas made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2962 * @samrayner made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2939 * @eltociear made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2994 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.9.2...1.9.3
1.9.2
6 weeks ago
## What's Changed * Fixed: The `BindableAction` dynamic case lookup added in 1.9 led to a regression in compile time performance that could break downstream builds. This has been reverted (https://github.com/pointfreeco/swift-composable-architecture/pull/2886). * Fixed: Support swift-syntax 510 (https://github.com/pointfreeco/swift-composable-architecture/pull/2884). * Infrastructure: Add Links to Migration Guides in README (thanks @jshier, https://github.com/pointfreeco/swift-composable-architecture/pull/2877). * Infrastructure: Fixed the article of tree-based navigation (thanks @takehilo, https://github.com/pointfreeco/swift-composable-architecture/pull/2882). * Infrastructure: Leverage dynamic case writability in example code (https://github.com/pointfreeco/swift-composable-architecture/pull/2885). **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.9.1...1.9.2
1.9.1
7 weeks ago
## What's Changed * Fixed: Addressed a regression introduced in 1.9.0 in which a case key path could become ambiguous if an action case name _and_ a bindable action key path name overlap (https://github.com/pointfreeco/swift-composable-architecture/pull/2875). * Infrastructure: Add step for making enum reducer state equatable in tutorial (https://github.com/pointfreeco/swift-composable-architecture/pull/2873). * Infrastructure: Fixed a small typo on 1.9 migration guide (thank @takehilo, https://github.com/pointfreeco/swift-composable-architecture/pull/2876). **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.9.0...1.9.1
1.9.0
7 weeks ago
## What's Changed See [Migrating to 1.9](https://github.com/pointfreeco/swift-composable-architecture/blob/main/Sources/ComposableArchitecture/Documentation.docc/Articles/MigrationGuides/MigratingTo1.9.md) for more details. * Added: New versions of `TestStore.send` that accept case key paths (thanks @scogeo, https://github.com/pointfreeco/swift-composable-architecture/pull/2681; https://github.com/pointfreeco/swift-composable-architecture/pull/2868). * Added `Reducer.dependency(value)`, for overriding a reducer's dependency using a singleton value of a type (https://github.com/pointfreeco/swift-composable-architecture/pull/2863). * Fixed: Improve `Store` diagnostics for deriving bindings (https://github.com/pointfreeco/swift-composable-architecture/pull/2793). * Fixed: Avoid erroneous perception checks when `ViewStore`s are initialized in a view that doesn't use `WithPerceptionTracking` (https://github.com/pointfreeco/swift-composable-architecture/pull/2849). * Fixed: Support `#if` branching in `@ObservableState` and enum `@Reducer`s (https://github.com/pointfreeco/swift-composable-architecture/pull/2800). * Infrastructure: Tree navigation documentation fixes (thanks @imjn, https://github.com/pointfreeco/swift-composable-architecture/pull/2837); presentation reducer documentation fixes (thanks @ozumin, https://github.com/pointfreeco/swift-composable-architecture/pull/2853). * Infrastructure: Improve tutorial diffing (thanks @oka-yuji, https://github.com/pointfreeco/swift-composable-architecture/pull/2844). * Infrastructure: Expand release build test coverage (https://github.com/pointfreeco/swift-composable-architecture/pull/2856). * Infrastructure: Document gotcha with macros and previews (https://github.com/pointfreeco/swift-composable-architecture/pull/2855). ## New Contributors * @imjn made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2837 * @oka-yuji made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2844 * @ozumin made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2853 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.8.2...1.9.0
1.8.2
8 weeks ago
## What's Changed * Fix: Added missing namespace for Scope when in ReducerMacro by @stefancodinglands in https://github.com/pointfreeco/swift-composable-architecture/pull/2832 * Fix: More fixes for @Reducer macro https://github.com/pointfreeco/swift-composable-architecture/pull/2834 ## New Contributors * @stefancodinglands made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2832 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.8.1...1.8.2
1.8.1
9 weeks ago
## What's Changed * Infrastructure: Document `@Reducer(state: .equatable)` in the migration guide https://github.com/pointfreeco/swift-composable-architecture/pull/2796 * Infrastructure: Adopt complete concurrency and fix a few warnings https://github.com/pointfreeco/swift-composable-architecture/pull/2787 * Fixed: [macro] Make _$id and _$willModify() public by @freak4pc in https://github.com/pointfreeco/swift-composable-architecture/pull/2789 * Fixed: Typo by @hmhv in https://github.com/pointfreeco/swift-composable-architecture/pull/2797 * Infrastructure: A small change on migration guide 1.8 by @takehilo in https://github.com/pointfreeco/swift-composable-architecture/pull/2799 * Infrastructure: Update links to documentation by @d-date in https://github.com/pointfreeco/swift-composable-architecture/pull/2801 * Infrastructure: Replace usage of 'viewStore' with 'store' in UIKit code by @juliensagot in https://github.com/pointfreeco/swift-composable-architecture/pull/2820 * Fixed Fix macro compiler bug in release mode https://github.com/pointfreeco/swift-composable-architecture/pull/2827 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.8.0...1.8.1
1.8.0
9 weeks ago
## What's Changed See [Migrating to 1.8](https://github.com/pointfreeco/swift-composable-architecture/blob/main/Sources/ComposableArchitecture/Documentation.docc/Articles/MigrationGuides/MigratingTo1.8.md) for more details. * Added: New `@Reducer` macro features (https://github.com/pointfreeco/swift-composable-architecture/pull/2795). The `@Reducer` macro has been enhanced to streamline usage and simplify some common patterns: * When left undefined, the `@Reducer` will now define default implementations of `State`, `Action`, and `body`. This means stubbing a feature is as simple as `@Reducer struct Feature {}`. * `@Reducer` can now be used with enums to simplify the boilerplate associated with "destination" and "path" reducers. See the [1.8 migration guide](https://pointfreeco.github.io/swift-composable-architecture/main/documentation/composablearchitecture/migratingto1.8) for more information on how to use these APIs. * Fixed: Propagate `@ViewAction` macro availability (https://github.com/pointfreeco/swift-composable-architecture/pull/2785). * Fixed: Properly tag nested observable enums so that changes to non-observable cases are better observed (https://github.com/pointfreeco/swift-composable-architecture/pull/2786). * Infrastructure: Fix typo in migration guide 1.6 (thanks @takehilo, https://github.com/pointfreeco/swift-composable-architecture/pull/2779); better document explicit `id` with scoped `ForEach` (https://github.com/pointfreeco/swift-composable-architecture/pull/2784); Fix typo in the 1.7 migration guide (thanks @yaslab, https://github.com/pointfreeco/swift-composable-architecture/pull/2780; thanks @Ryu0118, https://github.com/pointfreeco/swift-composable-architecture/pull/2790); **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.7.2...1.8.0 ## New Contributors * @yaslab made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2780 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.7.3...1.8.0
1.7.3
10 weeks ago
## What's Changed * Fixed: Fix navigationDestinationWrapper in docs in https://github.com/pointfreeco/swift-composable-architecture/pull/2765 * Infrastructure: Clean up examples in https://github.com/pointfreeco/swift-composable-architecture/pull/2754 * Infrastructure: Simplify Stack Navigation Demo in https://github.com/pointfreeco/swift-composable-architecture/pull/2758 * Infrastructure: Some cleanup in https://github.com/pointfreeco/swift-composable-architecture/pull/2759 * Infrastructure: remove invalid newlines by @hmhv in https://github.com/pointfreeco/swift-composable-architecture/pull/2763 * Infrastructure: Update warning for uncached stores in https://github.com/pointfreeco/swift-composable-architecture/pull/2764 * Infrastructure: Add TCAComposer to Companion libraries. by @scogeo in https://github.com/pointfreeco/swift-composable-architecture/pull/2768 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.7.2...1.7.3
1.7.2
11 weeks ago
## What's Changed * Fixed: A visionOS build regression introduced in 1.7.1 has been fixed (thanks @peterbohac, https://github.com/pointfreeco/swift-composable-architecture/pull/2746). * Fixed: visionOS-related warnings around observation have been fixed (https://github.com/pointfreeco/swift-composable-architecture/pull/2752). * Infrastructure: CI now runs against visionOS (https://github.com/pointfreeco/swift-composable-architecture/pull/2747). ## New Contributors * @peterbohac made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2746 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.7.1...1.7.2
1.7.1
11 weeks ago
## What's Changed * Fixed: The Composable Architecture's SwiftUI Binding helpers should better preserve SwiftUI animation and transaction information (https://github.com/pointfreeco/swift-composable-architecture/pull/2740). Previously, animations could be lost in certain situations. * Fixed: `@ObservableState` now supports the `package` access modifier (thanks @nnsnodnb, https://github.com/pointfreeco/swift-composable-architecture/pull/2741). * Deprecated: `Reducer.onChange(of:removeDuplicates:)` has been deprecated (https://github.com/pointfreeco/swift-composable-architecture/pull/2744). The `removeDuplicates` argument put strain on the compiler that could cause reducers to not compile in time. Migration strategy: use an explicit wrapper type that is `Equatable`, instead. * Infrastructure: Migrating to 1.7 fixes (thanks @acosmicflamingo, https://github.com/pointfreeco/swift-composable-architecture/pull/2732; thanks @bricklife, https://github.com/pointfreeco/swift-composable-architecture/pull/2736; thanks @zvona031, https://github.com/pointfreeco/swift-composable-architecture/pull/2738; thanks @shgew; https://github.com/pointfreeco/swift-composable-architecture/pull/2743); README fix (thanks @yimajo, https://github.com/pointfreeco/swift-composable-architecture/pull/2734). ## New Contributors * @acosmicflamingo made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2732 * @zvona031 made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2738 * @shgew made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2743 * @nnsnodnb made their first contribution in https://github.com/pointfreeco/swift-composable-architecture/pull/2741 **Full Changelog**: https://github.com/pointfreeco/swift-composable-architecture/compare/1.7.0...1.7.1
iOS macOS watchOS tvOS
stephencelis/SQLite.swift 0.15.3
A type-safe, Swift-language layer over SQLite3.
⭐️ 9,461
🕓 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.
0.15.3
3 days ago
## What's Changed * Bugfix: Update `podspec` to include privacy manifest by @SagarSDagdu in https://github.com/stephencelis/SQLite.swift/pull/1265 **Full Changelog**: https://github.com/stephencelis/SQLite.swift/compare/0.15.2...0.15.3
0.15.2
6 days ago
## What's Changed * fix: visionos to cocoapods by @nathanfallet in https://github.com/stephencelis/SQLite.swift/pull/1260 **Full Changelog**: https://github.com/stephencelis/SQLite.swift/compare/0.15.1...0.15.2
0.15.1
1 week ago
## What's Changed * Update CoreFunctions.swift fix typo by @steventong in https://github.com/stephencelis/SQLite.swift/pull/1249 * Fix #1247 support nil case when decoding optionals by @Chris-Stockbridge in https://github.com/stephencelis/SQLite.swift/pull/1248 * Change deployment targets for Xcode 15 and add dependency on custom Cocoapods fork by @SagarSDagdu in https://github.com/stephencelis/SQLite.swift/pull/1255 * Add VisionOS support by @AnthonyMDev in https://github.com/stephencelis/SQLite.swift/pull/1237 ## New Contributors * @steventong made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1249 * @Chris-Stockbridge made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1248 * @SagarSDagdu made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1255 * @AnthonyMDev made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1237 **Full Changelog**: https://github.com/stephencelis/SQLite.swift/compare/0.15.0...0.15.1
0.15.0
8 weeks ago
## What's Changed * Fix incorrect behavior when preparing SELECT * preceded by a WITH by @marmphco in https://github.com/stephencelis/SQLite.swift/pull/1179 * Adds support for returning extended error codes by @geoffmacd in https://github.com/stephencelis/SQLite.swift/pull/1178 * Fix typos by @rex4539 in https://github.com/stephencelis/SQLite.swift/pull/1182 * fix Xcode build error by @pongsakorn-onsri in https://github.com/stephencelis/SQLite.swift/pull/1192 * Make ithe IndexDefinition properties public by @stefansaasen in https://github.com/stephencelis/SQLite.swift/pull/1196 * Fix GitHub Actions build badge by @fwcd in https://github.com/stephencelis/SQLite.swift/pull/1200 * Run CI on macOS 13 by @jberkel in https://github.com/stephencelis/SQLite.swift/pull/1206 * SchemaReader: return the correct column definition for a composite primary key by @stefansaasen in https://github.com/stephencelis/SQLite.swift/pull/1217 * Add optional support for decoding by @JacobHearst in https://github.com/stephencelis/SQLite.swift/pull/1224 * make fromDatatypeValue throw by @elfredpagan in https://github.com/stephencelis/SQLite.swift/pull/1242 * Implements built-in window functions by @geoffmacd in https://github.com/stephencelis/SQLite.swift/pull/1228 * Fix column affinity parsing to match how SQLite determines affinity (Fix #1215) by @stefansaasen in https://github.com/stephencelis/SQLite.swift/pull/1218 * Handle FK definitions w/o key references by @jberkel in https://github.com/stephencelis/SQLite.swift/pull/1210 * Add privacy manifest by @ivanlares in https://github.com/stephencelis/SQLite.swift/pull/1245 ## New Contributors * @rex4539 made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1182 * @pongsakorn-onsri made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1192 * @stefansaasen made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1196 * @fwcd made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1200 * @JacobHearst made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1224 * @elfredpagan made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1242 * @ivanlares made their first contribution in https://github.com/stephencelis/SQLite.swift/pull/1234 **Full Changelog**: https://github.com/stephencelis/SQLite.swift/compare/0.14.1...0.15.0
0.14.1
1 year ago
* Reverted `Blob` changes (#1170) * For 0.14.0 changes, see the [changelog](https://github.com/stephencelis/SQLite.swift/blob/master/CHANGELOG.md#0140-27-10-2022-diff)
0.13.3
2 years ago
* UUID Fix #1112 * Add prepareRowIterator method to an extension of Statement. #1119 * Adding primary key support to column with references #1121
0.13.2
2 years ago
• Closing bracket position #1100 • Native user_version support in Connection #1105
2 years ago
* Support for database backup #919 * Support for custom SQL aggregates #881 * Restore previous behavior in `FailableIterator` #1075 * Fix compilation on Linux #1077 * Align platform versions in SPM manifest and Xcode #1094 * Revert OSX deployment target back to 10.10 #1095
Support for Xcode 12 and iOS 14 + fixes
2 years ago
CocoaPods modular headers support. CocoaPods podspec bugfix.
4 years ago
iOS macOS watchOS tvOS
tristanhimmelman/ObjectMapper 4.4.1
Simple JSON Object mapping written in Swift
⭐️ 9,097
🕓 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.
4.4.1
2 days ago
## What's Changed * Update ObjectMapper.podspec by @selvam4274 in https://github.com/tristanhimmelman/ObjectMapper/pull/1144 **Full Changelog**: https://github.com/tristanhimmelman/ObjectMapper/compare/4.4.0...4.4.1
4.4.0
3 days ago
## What's Changed * Update Apple Upcoming Requirements by @selvam4274 in https://github.com/tristanhimmelman/ObjectMapper/pull/1142 **Full Changelog**: https://github.com/tristanhimmelman/ObjectMapper/compare/4.3.1...4.4.0
Update OS X Deployment target
3 weeks ago
Update deployment iOS target 13.0
5 weeks ago
Set iOS deployment target to iOS 10
3 years ago
#1088
Add support for defaults
3 years ago
#1085
Swift 5 support
3 years ago
#1081
Linux fix
3 years ago
#1069
ImmutableMappable init fix
4 years ago
ImmutableMappable init fix #1079
Fix for mapping optional RawRepresentable enum with ImmutableMappable
4 years ago
#1059
iOS macOS watchOS tvOS
groue/GRDB.swift v6.27.0
A toolkit for SQLite databases, with a focus on application development
⭐️ 6,465
🕓 23 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.
6.27.0
23 hours ago
_A new release of the Swift toolkit for SQLite databases._ - **Fixed**: [#1533](https://github.com/groue/GRDB.swift/pull/1533) by [@groue](https://github.com/groue): Fix a bug in Decodable support - **Documentation Update**: [#1534](https://github.com/groue/GRDB.swift/pull/1534) The [Single-Row Tables](https://swiftpackageindex.com/groue/grdb.swift/documentation/grdb/singlerowtables) guide was updated with guidance about default configuration values. - **Documentation Update**: [#1535](https://github.com/groue/GRDB.swift/pull/1535) The [ValueObservation Scheduling](https://swiftpackageindex.com/groue/grdb.swift/documentation/grdb/valueobservation#ValueObservation-Scheduling) documentation chapter explains the default behavior of `ValueObservation` fetches, and explains how to make sure they are never performed on the main thread.
6.26.0
4 weeks ago
_A new release of the Swift toolkit for SQLite databases._ - **New**: [#1503](https://github.com/groue/GRDB.swift/pull/1503) by [@simba909](https://github.com/simba909): Conform Database.ColumnType to Sendable - **New**: [#1510](https://github.com/groue/GRDB.swift/pull/1510) by [@groue](https://github.com/groue): Add Sendable conformances and unavailabilities - **New**: [#1511](https://github.com/groue/GRDB.swift/pull/1511) by [@groue](https://github.com/groue): Database schema dump - **New**: [#1515](https://github.com/groue/GRDB.swift/pull/1515) by [@groue](https://github.com/groue): Support for the CAST SQLite function - **Fixed**: [#1508](https://github.com/groue/GRDB.swift/pull/1508) by [@groue](https://github.com/groue): Fix ValueObservation mishandling of database schema modification - **Fixed**: [#1512](https://github.com/groue/GRDB.swift/issues/1512): Decoding errors are now correctly reported when decoding NULL into a non-optional property of type `Data` or `Date`.
6.25.0
8 weeks ago
_A new release of the Swift toolkit for SQLite databases._ - **New**: [#1496](https://github.com/groue/GRDB.swift/pull/1496) by [@danielepantaleone](https://github.com/danielepantaleone): Add privacy manifest file. A `PrivacyInfo.xcprivacy` resource was added to the GRDB SPM package and Xcode projects. It declares that GRDB does not collect anything.
6.24.2
13 weeks ago
_A new release of the Swift toolkit for SQLite databases._ - **Documentation Update**: [#1485](https://github.com/groue/GRDB.swift/pull/1485): The [Sharing a Database](https://swiftpackageindex.com/groue/grdb.swift/documentation/grdb/databasesharing) guide was updated with a new recommendation for databases shared between multiple processes. Writers should always perform IMMEDIATE transactions in order to avoid the `SQLITE_BUSY` error that can occur when transactions overlap. The new recommendation fits in a single line of code: `configuration.defaultTransactionKind = .immediate`. - **New**: Associations that involve views instead of tables were already supported, with an explicit `ForeignKey` in their definition. When the foreign key is missing, a clear diagnostic message is now emitted, instead of an unhelpful "no such table" runtime error. Changes from 6.24.1 and 6.24.0: - **Fixed**: [#1477](https://github.com/groue/GRDB.swift/pull/1477): Remove shadow tables from database dump - **New**: [#1466](https://github.com/groue/GRDB.swift/pull/1466) by [@barnettben](https://github.com/barnettben): Add schema name option to database introspection methods
6.24.1
15 weeks ago
_A new release of the Swift toolkit for SQLite databases._ - **Fixed**: [#1477](https://github.com/groue/GRDB.swift/pull/1477): Remove shadow tables from database dump Changes from 6.24.0: - **New**: [#1466](https://github.com/groue/GRDB.swift/pull/1466) by [@barnettben](https://github.com/barnettben): Add schema name option to database introspection methods
6.24.0
15 weeks ago
_A new release of the Swift toolkit for SQLite databases._ - **New**: [#1466](https://github.com/groue/GRDB.swift/pull/1466) by [@barnettben](https://github.com/barnettben): Add schema name option to database introspection methods
6.23.0
20 weeks ago
- **New**: [#1462](https://github.com/groue/GRDB.swift/pull/1462) Temporary read-only access
6.22.0
21 weeks 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
25 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
27 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.
iOS macOS watchOS tvOS

Popular Packages

ggerganov/llama.cpp master-fff0e0e
LLM inference in C/C++
⭐️ 56,128
🕓 39 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.
b2710
18 hours ago
b2709
20 hours ago
b2708
20 hours ago
b2707
21 hours ago
b2702
Yesterday
b2700
2 days ago
b2699
2 days ago
b2698
3 days ago
b2697
3 days ago
b2696
3 days ago
iOS macOS watchOS tvOS
grpc/grpc v1.63.0-pre2
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
⭐️ 40,706
🕓 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.
Release v1.63.0-pre2
4 days ago
This is a prerelease of gRPC Core 1.63.0 (giggle). 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.62.2
4 days ago
This is release gRPC Core 1.62.2 (guardian). 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. Python --- * [Fix Python Deadlock] Guard grpc_google_default_credentials_create with nogil by @XuanWang-Amos in https://github.com/grpc/grpc/pull/36376 **Full Changelog**: https://github.com/grpc/grpc/compare/v1.62.1...v1.62.2
Release v1.63.0-pre1
1 week ago
This is a prerelease of gRPC Core 1.63.0 (giggle). 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.62.1
6 weeks ago
This is release gRPC Core 1.62.1 (guardian). 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.
Release v1.61.2
5 weeks ago
This is release gRPC Core 1.61.2 (grand). 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.
Release v1.62.0
8 weeks ago
This is release 1.62.0 ([guardian](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 --- - [metadata] Allow non application/grpc content-type values. ([#35824](https://github.com/grpc/grpc/pull/35824)) - [BoringSSL] Update third_party/boringssl-with-bazel. ([#35768](https://github.com/grpc/grpc/pull/35768)) - [GPR] Removed GPR_BACKWARDS_COMPATIBILITY_MODE. ([#35602](https://github.com/grpc/grpc/pull/35602)) Python --- - [Build] Strip armv7 artifacts. ([#35832](https://github.com/grpc/grpc/pull/35832)) - [Python AIO] Handle DeprecationWarnings when get current loop. ([#35583](https://github.com/grpc/grpc/pull/35583)) - [Python AIO] Raise resource_exhausted error in case of concurrent RPC limit exceeded. ([#35376](https://github.com/grpc/grpc/pull/35376)) - [Python O11y] Build and distrib O11y package. ([#35578](https://github.com/grpc/grpc/pull/35578)) - [Python setuptools] Import error from distutils for lower version of setuptools. ([#35561](https://github.com/grpc/grpc/pull/35561)) - [ruby] Fix use-after-free for post-fork channel recreation. ([#35488](https://github.com/grpc/grpc/pull/35488)) Ruby --- - [ruby] Build/test ruby 3.3 and build native gems with Ruby 3.3 support. ([#35399](https://github.com/grpc/grpc/pull/35399))
Release v1.62.0-pre1
9 weeks ago
This is a prerelease of gRPC Core 1.62.0 (guardian). 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. Python --- - `grpcio_observability` package is not published in this release due to an issue in packaging.
Release v1.61.1
9 weeks ago
This is release gRPC Core 1.61.1 (grand). 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 --- - [Deps] Fix the issue with new Abseil #35883
Release v1.59.4
10 weeks ago
This is release gRPC Core 1.59.4 (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] Add set min/max TLS version APIs to TLS credentials APIs. (#34861)
Release v1.56.4
10 weeks ago
This is release gRPC Core 1.56.4 (galvanized). 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] Add set min/max TLS version APIs to TLS credentials APIs. (#34861)
Alamofire/Alamofire 5.9.1
Elegant HTTP Networking in Swift
⭐️ 40,504
🕓 3 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.9.1
3 weeks ago
Released on 2024-03-30. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/90?closed=1). ### Updated - `HTTPHeaders` and `HTTPHeader` to be `Sendable`. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3856](https://github.com/Alamofire/Alamofire/pull/3856). - `HTTPMethod` to be `Sendable`. - Updated by [Galvin Li](https://github.com/bestwnh) in Pull Request [#3848](https://github.com/Alamofire/Alamofire/pull/3848). ### Fixed - CocoaPods visionOS support by explicitly declaring it in podspec. - Fixed by [Tamás Jäger](https://github.com/bestwnh) in Pull Request [#3845](https://github.com/Alamofire/Alamofire/pull/3845).
5.9.0
7 weeks ago
Released on 2024-03-03. All issues associated with this milestone can be found using this [filter](https://github.com/Alamofire/Alamofire/milestone/89?closed=1). ### Added - [🔥 Experimental 🔥] `WebSocketRequest`, as a wrapper for `URLSessionWebSocketTask`. This preview release is undocumented behind `@_spi(WebSocket)`. Its API _will_ change in the future, especially to adopt typed throws, but it is largely feature complete, tested, and usable now. API feedback, missing use cases, and bug reports are much appreciated before it goes fully public. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3455](https://github.com/Alamofire/Alamofire/pull/3455). - `PrivacyInfo.xcprivacy` file and integration with SPM, CocoaPods, and Carthage. - Added by [Dmitry Kuleshov](https://github.com/kdvmgn) and [Jon Shier](https://github.com/jshier) in Pull Requests [#3792](https://github.com/Alamofire/Alamofire/pull/3792), [#3831](https://github.com/Alamofire/Alamofire/pull/3831), and [#3839](https://github.com/Alamofire/Alamofire/pull/3839). - `AlamofireDynamic` target, to force dynamic linking in Xcode when using SPM. Only use when you know you need it. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3808](https://github.com/Alamofire/Alamofire/pull/3808). - `AFInfo` enum and a public `version` value to get Alamofire's current version, `AFInfo.version`. - Added by [Jon Shier](https://github.com/jshier) in Pull Request [#3819](https://github.com/Alamofire/Alamofire/pull/3819). ### Updated - Alamofire to require Swift 5.7.1. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3798](https://github.com/Alamofire/Alamofire/pull/3798). - Project structure to break apart large `Request.swift` file and consolidate various `Request` subclasses into their own files. - Updated by [Jon Shier](https://github.com/jshier) in Pull Request [#3798](https://github.com/Alamofire/Alamofire/pull/3798). - `Empty` type to be `Sendable`. - Updated by [Antoine van der Lee](https://github.com/AvdLee) in Pull Request [#3816](https://github.com/Alamofire/Alamofire/pull/3816). - `.swiftformat` to remove duplicate rules. - Updated by [Fourenn](https://github.com/giftbott) in Pull Request [#3835](https://github.com/Alamofire/Alamofire/pull/3835). ### Fixed - Platform deprecation warnings in `Package.swift` in newer Xcode versions. - Updated by [fess](https://github.com/apps4everyone) in Pull Request [#3823](https://github.com/Alamofire/Alamofire/pull/3823). - `Alamofire.podspec` after project restructuring. - Updated by [mlch](https://github.com/mlch911) in Pull Request [#3825](https://github.com/Alamofire/Alamofire/pull/3825). - Various documentation typos. - Fixed by [JaewoongLee-swift](https://github.com/JaewoongLee-swift), [TaeHyun](https://github.com/kth1210), and [hugo-syn](https://github.com/hugo-syn) in various Pull Requests.
5.8.1
25 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
33 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
49 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
49 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
2 years 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).
iOS macOS watchOS tvOS
nlohmann/json v3.11.3
JSON for Modern C++
⭐️ 40,193
🕓 20 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.
JSON for Modern C++ version 3.11.3
20 weeks 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 newer 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 are 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
2 years 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
fastlane/fastlane watchbuild/0.1.4
🚀 The easiest way to automate building and releasing your iOS and Android apps
⭐️ 38,604
🕓 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.
2.220.0 Improvements
2 weeks ago
* [action][sh] fix undefined sh_enabled? method when using Action.sh from a plugin Action (#21408) via Vitalii Budnik (@nekrich) * [match] Include visionOS devices in provisioning profiles (#21871) via peter-gyarmati (@peter-gyarmati) * [spaceship] Fix filtering of Mac devices when trying to create a macOS profile (#21915) via Olivier Halligon (@AliSoftware) * [core] update simctl command in device_manager.rb [21893] (#21894) via David Nedrow (@dnedrow) * [fastlane] remove dependency on unmaintained rest-client library (#21898) via Jerome Lacoste (@lacostej) * [spaceship] handle new app status (#21890) via Lukasz Grabowski (@lucgrabowski) * [spaceship] Update Model: beta_tester (#21799) via mlch911 (@mlch911) * [fix] drop old code made for ruby < 2.6 (#21878) via Jerome Lacoste (@lacostej) * [fastlane_core] fix the display of non-unicode characters when printing lane context (#21857) via Jerome Lacoste (@lacostej) * [spaceship] `create_certificate_signing_request`: update from SHA-1 to SHA-256 (#21644) via Jay Soffian (@jaysoffian) * [match][hotfix] remove the `renew_expired_certs` option introduced in #21691 and revert the default behavior while we address issues with it (#21812) via Vitalii Budnik (@nekrich) * [action][appetize] Raise error when the API returns an unsuccessful response (#21816) via Ben Ferris (@benferris-tl) * [action][git_add] Add `force` option (#21850) via Tomoki Yamashita (@tomorrowkey) * [pilot] add xros as valid option for pilot upload (#21841) via Damian Monogue (@demonnic) * [match] fix devices fetch for tvOS platform (#21828) via Vitalii Budnik (@nekrich) * [deliver] increase chances of success when creating a new app version even when Apple servers are degraded (#21742) via Roger Oba (@rogerluan) * [action][OneSignal] Update to use v11.0 REST API (#21839) via Mohammed Akram Hussain (@Akramhussain4) * [snapshot] fix regression introduced in 2.218.0 caused by extraneous method argument in snapshot setup (#21832) via Jerome Lacoste (@lacostej) * [spec] fix the loading of certain passwords from the keychain (fixes #21817) (#21818) via Ryan Pendleton (@rpendleton) * [gym][fastlane_core] add platform support for visionOS (#21574) via Philipp Resch (@PinkidG) * [match] improve encryption internals, solving flaky test (#21663) (#21790) via Jerome Lacoste (@lacostej) * [frameit] iPhone 14 Frames (#21727) via sathoeni (@sathoeni) * [spaceship] decrease App Store Connect API token `issued-at-time` to prevent server rejection (#21583) via Jason Moore (@xinsight) * [match][sigh] add option to automatically renew expired certificates (defaults to enabled) (#21691) via Vitalii Budnik (@nekrich) * [pilot] do not advertise the `skip_waiting_for_build_processing` option when it is already set (#21730) via Robin Kunde (@robinkunde) * [match] propagate keychain when installing wwdr certificates (#21578) via rabbitinspace (@rabbitinspace) * [deliver] introduce `timeout` for screenshots processing waiting time (#21693) via Mikhail Maslo (@mikhailmaslo) * [frameit] facebook.design doesn't work anymore (#20915) via Guglielmo Faglioni (@guidev) * [core] add an interactive console for users as well (#21803) via Jerome Lacoste (@lacostej) * [trainer] fix issues where number of failures would always be zero (#21432) via Mahmood Tahir (@tahirmt)
2.219.0 Improvements
15 weeks ago
* [fastlane][ci] Lock google-cloud-env < 2.0.0 for Ruby 2.6 and fix CI to use specified ruby versions (#21777) via Josh Holtz (@joshdholtz) * [sigh] prevent crashes in `fetch_profiles` when profiles have no `bundle_id` (#21758) via jonas2808 (@jonas2808) * [scan] Fix device selection issue fallback scenario (#21772) via arc-v2 (@arc-v2) * [sigh] fix cache parameters validation (#21766) via Vitalii Budnik (@nekrich) * [match] fix cache issues in read-only mode (#21767) via Vitalii Budnik (@nekrich)
2.218.0 Improvements
15 weeks ago
Auto-generated by fastlane 🤖 **Changes since release '2.217.0':** * [action][sonar] replace deprecated sonar.login parameter with sonar.token (#21736) via Panajev (@Panajev) * [action][spm] add simulator flag for swift compiler (#21707) via Mohammad Gharari (@gharary) * [security] update `sinatra` dev dependency to resolve dependabot alert (#21709) via Jerome Lacoste (@lacostej) * [fastlane-core] recommends to retry uploading when AltoolTransporterExecutor crashes (#21536) via Jason Hagglund (@TheMetalCode) * [Fastlane.swift] fix Unexpected duplicate tasks error message in Fastlane Swift (#21621) via Daniel Jankowski (@mollyIV) * [scan] Filter simulators with version greater than SDK version of active Xcode installation when choosing default (#21677) via wuaar1003 (@wuaar1003) * [plugin_generator] move development dependencies from `*.gemspec.erb` to `Gemfile.erb` (#21726) via Roger Oba (@rogerluan) * [match] add caching layer to significantly improve performance by up to 100x (#21694) via Vitalii Budnik (@nekrich) * [fastlane_core] add support to Ruby 3.3 (#21683) via Jerome Lacoste (@lacostej) * [fastlane] remove some unused method parameters (#21722) via Jerome Lacoste (@lacostej) * [action][spm] deprecate `build_path` option in favor of `scratch_path`, as recommended by Swift CLI (#20814) via Victor Carvalho Tavernari (@Tavernari) * [match] git storage: allow simultaneous usage of clone_branch_directly and shallow_clone (#21716) via Vitalii Budnik (@nekrich) * [action][spm] add `parallel` option (#21665) via Bram Schulting (@bramschulting) * [fastlane_core] remove expired WWDR G1 certificate from cert_checker (#21098) via janwiebe-jump (@janwiebe-jump) * [action][upload_symbols_to_crashlytics] allow '~' in binary path (#21032) via GevaZeichner (@GevaZeichner) * [scan] replace the `simctl boot` command with `simctl bootstatus`, potentially fixing signal kill before running tests (#21026) via Alexey Alter-Pesotskiy (@testableapple) * [spaceship] add `Spaceship::ConnectAPI::AppPreviewSet::PreviewType::IPHONE_67` (#21710) via Sergei Sevkovich (@drcreazy) * [action][ensure_no_debug_code] detect binding.irb in `ensure_no_debug_code` during build. (#21635) via Takuma Homma (@mataku) * CONTRIBUTING.md: remove Google CLA section (#21646) via Jay Soffian (@jaysoffian) * [fastlane_core] hide xcodebuild stderr to solve #21672 (#21673) via Jerome Lacoste (@lacostej) * [scan] fix misleading error message when no devices are found (#21650) via Miles Thompson (@MagnificentMiles) * [deliver][spaceship][scan] fix build warnings in rspec (#21660) via Jerome Lacoste (@lacostej) * [deliver] fix regression where changes made to the privacy URL fail to upload (#21657) via Owen Hart (@owjsub) * [fastlane_core] let FastlanePty detect when externally invoked programs crash, harden it when using popen, and expose process statuses. (#21618) via Jerome Lacoste (@lacostej)
2.217.0 Improvements
22 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
30 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
31 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
31 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
40 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
47 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
1 year 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)
AFNetworking/AFNetworking 4.0.1
A delightful networking framework for iOS, macOS, watchOS, and tvOS.
⭐️ 33,331
🕓 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.
Fixes and Updates
4 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
4 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
5 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
6 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
8 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
8 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
8 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
8 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
8 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
ggerganov/whisper.cpp v1.5.5
Port of OpenAI's Whisper model in C/C++
⭐️ 30,990
🕓 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.
v1.5.5
6 days ago
## Overview Many small incremental updates + Token level timestamps with DTW by @denersc in https://github.com/ggerganov/whisper.cpp/pull/1485 Feedback is welcome! **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.4...v1.5.5 ## What's Changed * server : fix server temperature + add temperature_inc by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1729 * main : add cli option to disable system prints by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1740 * server: add request path by @eschmidbauer in https://github.com/ggerganov/whisper.cpp/pull/1741 * Optional Piper TTS support for talk-llama example. by @RhinoDevel in https://github.com/ggerganov/whisper.cpp/pull/1749 * fix/1748 by @nank1ro in https://github.com/ggerganov/whisper.cpp/pull/1750 * Don't compute timestamps when not printing them. by @ghindle in https://github.com/ggerganov/whisper.cpp/pull/1755 * Add more parameters to server api by @ghindle in https://github.com/ggerganov/whisper.cpp/pull/1754 * Add SetInitialPrompt method to go bindings by @blib in https://github.com/ggerganov/whisper.cpp/pull/1753 * ggml : fix 32-bit ARM compat for IQ2_XS by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1758 * refactor: get all scripts to be POSIX Compliant by @sonphantrung in https://github.com/ggerganov/whisper.cpp/pull/1725 * whisper : load the model into multiple buffers of max size 1GB by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1763 * rebase against your -np changes (thx) and add better python file to be used on the command line or as library by @contractorwolf in https://github.com/ggerganov/whisper.cpp/pull/1744 * examples/talk-llama: Add optional commandline parameter to set the bot name. by @RhinoDevel in https://github.com/ggerganov/whisper.cpp/pull/1764 * server : fix building and simplify lib deps on Windows by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1772 * talk-llama: optional wake-up command and audio confirmation by @Rakksor in https://github.com/ggerganov/whisper.cpp/pull/1765 * examples/server: implement "verbose_json" format with token details by @rmmh in https://github.com/ggerganov/whisper.cpp/pull/1781 * whisper.android: Return output from benchmarks by @luciferous in https://github.com/ggerganov/whisper.cpp/pull/1785 * libwhisper.so should be position independent by @trixirt in https://github.com/ggerganov/whisper.cpp/pull/1792 * Docs: try to make model options / model install methods clearer by @mrienstra in https://github.com/ggerganov/whisper.cpp/pull/1806 * common : fix input buffer check by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1812 * Update Makefile by @jwijffels in https://github.com/ggerganov/whisper.cpp/pull/1813 * Add fields to `verbose_json` response and show examples on the home page by @JacobLinCool in https://github.com/ggerganov/whisper.cpp/pull/1802 * common: fix wav buffer detection by @JacobLinCool in https://github.com/ggerganov/whisper.cpp/pull/1819 * Add macOS deployment target option to Makefile by @didzis in https://github.com/ggerganov/whisper.cpp/pull/1839 * Expose CUDA device setting in public API by @didzis in https://github.com/ggerganov/whisper.cpp/pull/1840 * whisper.android: How to build with CLBlast by @luciferous in https://github.com/ggerganov/whisper.cpp/pull/1809 * server: Allow CORS request with authorization headers by @valenting in https://github.com/ggerganov/whisper.cpp/pull/1850 * Embed Metal library source into compiled binary by @didzis in https://github.com/ggerganov/whisper.cpp/pull/1842 * added audio_ctx argument to main and server examples by @dscripka in https://github.com/ggerganov/whisper.cpp/pull/1857 * whisper : fix external encoder by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1860 * swift : package no longer use ggml dependency by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1861 * fix openvino setup docs by @jumpers775 in https://github.com/ggerganov/whisper.cpp/pull/1874 * clean up common code in examples by @felrock in https://github.com/ggerganov/whisper.cpp/pull/1871 * main : check if input files exist before proceeding by @Theldus in https://github.com/ggerganov/whisper.cpp/pull/1872 * Linking issue fix via Makefile when CUBLAS enabled in the WSL #1876 by @lbluep in https://github.com/ggerganov/whisper.cpp/pull/1878 * main : fix file existence check in main.cpp by @Theldus in https://github.com/ggerganov/whisper.cpp/pull/1889 * openvino : fix convert-whisper-to-openvino.py for v2023.0.0 (#1870) by @st-gr in https://github.com/ggerganov/whisper.cpp/pull/1890 * ggml : 32-bit arm compat by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1891 * Add SYCL logic in whisper by @abhilash1910 in https://github.com/ggerganov/whisper.cpp/pull/1863 * talk and talk-llama: Pass text_to_speak as a file by @tamo in https://github.com/ggerganov/whisper.cpp/pull/1865 * Stream.wasm: Fix invalid memory access when no segments are returned by @Andrews54757 in https://github.com/ggerganov/whisper.cpp/pull/1902 * Update README to Recommend MacOS Sonoma for Core ML to avoid hallucination by @gavin1818 in https://github.com/ggerganov/whisper.cpp/pull/1917 * Add library versioning by @kenneth-ge in https://github.com/ggerganov/whisper.cpp/pull/1352 * Fix SF(segment fault) issue in Android JNI by @zhouwg in https://github.com/ggerganov/whisper.cpp/pull/1929 * Fix typo in source file whisper.cpp by @zhouwg in https://github.com/ggerganov/whisper.cpp/pull/1925 * bench:fix typo by @zhouwg in https://github.com/ggerganov/whisper.cpp/pull/1933 * Auto lowercase language parameter by @F1L1Pv2 in https://github.com/ggerganov/whisper.cpp/pull/1928 * ggml : try fix 32-bit arm compat by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1938 * whisper : make beam candidate sort more stable by @josharian in https://github.com/ggerganov/whisper.cpp/pull/1943 * bindings/go : add linker flags to make metal work by @josharian in https://github.com/ggerganov/whisper.cpp/pull/1944 * whisper : improve beam search candidate diversity by @josharian in https://github.com/ggerganov/whisper.cpp/pull/1947 * whisper : document whisper_batch.n_seq_id by @josharian in https://github.com/ggerganov/whisper.cpp/pull/1942 * Rename --audio-context to --audio-ctx, as per help text by @joliss in https://github.com/ggerganov/whisper.cpp/pull/1953 * [DRAFT] Token level timestamps with DTW (#375) by @denersc in https://github.com/ggerganov/whisper.cpp/pull/1485 * Fedora dependencies needed (SDL2) by @Man2Dev in https://github.com/ggerganov/whisper.cpp/pull/1970 * libcuda.so.1 in PATH in Docker Container by @tiagofassoni in https://github.com/ggerganov/whisper.cpp/pull/1966 * ruby : fix build by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1980 * Improve support for distil-large-v3 by @sanchit-gandhi in https://github.com/ggerganov/whisper.cpp/pull/1982 * whisper : improve handling of prompts by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1981 * sync : ggml by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/2001 * Implemented command-style grammar in the main example. by @ulatekh in https://github.com/ggerganov/whisper.cpp/pull/1998 * Use pkg-config for OpenBLAS by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1778 * ci : add building in MSYS2 environments (Windows) by @przemoc in https://github.com/ggerganov/whisper.cpp/pull/1994 * Support CUDA versions < 11.1 by @primenko-v in https://github.com/ggerganov/whisper.cpp/pull/2020 * Create solution folders in the CMake build by @ulatekh in https://github.com/ggerganov/whisper.cpp/pull/2004 * Allow a regular expression to describe tokens to suppress by @ulatekh in https://github.com/ggerganov/whisper.cpp/pull/1997 * "main" example now allows a response-file as the sole parameter by @ulatekh in https://github.com/ggerganov/whisper.cpp/pull/2019 * Support for CPU BLAS build via Intel MKL by @slashlib in https://github.com/ggerganov/whisper.cpp/pull/2024 * Set stdin to binary mode on Windows. Fixes #2023 by @rotemdan in https://github.com/ggerganov/whisper.cpp/pull/2025 * Fix file-handle leak in read_wav() by @ulatekh in https://github.com/ggerganov/whisper.cpp/pull/2026 * Fix DTW memory access by @bradmurray-dt in https://github.com/ggerganov/whisper.cpp/pull/2012 * whisper: update grammar-parser.cpp by @eltociear in https://github.com/ggerganov/whisper.cpp/pull/2058 * fix missing reference to "model" variable in actual shell command run in whisper.nvim by @sixcircuit in https://github.com/ggerganov/whisper.cpp/pull/2049 * build : detect AVX512 in Makefile, add AVX512 option in CMake by @didzis in https://github.com/ggerganov/whisper.cpp/pull/2043 * feature/no timestamps node by @pprobst in https://github.com/ggerganov/whisper.cpp/pull/2048 * Update embedded Metal library generation process to include dependency by @didzis in https://github.com/ggerganov/whisper.cpp/pull/2045 * server.cpp: add dtw by @eschmidbauer in https://github.com/ggerganov/whisper.cpp/pull/2044 ## New Contributors * @eschmidbauer made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1741 * @RhinoDevel made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1749 * @nank1ro made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1750 * @ghindle made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1755 * @blib made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1753 * @sonphantrung made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1725 * @contractorwolf made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1744 * @Rakksor made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1765 * @rmmh made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1781 * @luciferous made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1785 * @trixirt made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1792 * @mrienstra made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1806 * @JacobLinCool made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1802 * @valenting made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1850 * @dscripka made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1857 * @jumpers775 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1874 * @Theldus made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1872 * @lbluep made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1878 * @st-gr made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1890 * @abhilash1910 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1863 * @Andrews54757 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1902 * @gavin1818 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1917 * @kenneth-ge made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1352 * @zhouwg made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1929 * @F1L1Pv2 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1928 * @josharian made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1943 * @joliss made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1953 * @Man2Dev made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1970 * @tiagofassoni made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1966 * @sanchit-gandhi made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1982 * @ulatekh made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1998 * @primenko-v made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2020 * @slashlib made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2024 * @rotemdan made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2025 * @bradmurray-dt made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2012 * @sixcircuit made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2049 * @pprobst made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/2048 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.4...v1.5.5
v1.5.4
15 weeks ago
## Overview - Faster Core ML ANE models (#1716) - CUDA bugfix causing random erros in the transcription - Fix SwiftUI example build **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.3...v1.5.4
v1.5.3
15 weeks ago
## Overview Minor maintenance release: - Fix CUDA issues where the transcription produces garbage - FIX quantized models to work with CUDA backend - Allow to use `whisper.cpp` and `llama.cpp` together in SwiftUI projects ## What's Changed * Update bench.py by @ForkedInTime in https://github.com/ggerganov/whisper.cpp/pull/1655 * cmake : Resolve quantized model issue when CUBLAS enabled by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1667 * examples : Revert CMakeLists.txt for talk-llama by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1669 * CI : Add coverage for talk-llama when WHISPER_CUBLAS=1 by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1672 * ci: build and push docker image by @OpenWaygate in https://github.com/ggerganov/whisper.cpp/pull/1674 * sync : ggml (ggml_scale, ggml_row_size, etc.) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1677 * Replace `WHISPER_PRINT_DEBUG` with `WHISPER_LOG_DEBUG` by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1681 * download: Fix large q5 model name by @dimopep in https://github.com/ggerganov/whisper.cpp/pull/1695 * sync : ggml (VMM, sync-ggml-am.sh, dotprod ARM fixes) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1691 * whisper : replace `tensor->n_dims` with `ggml_n_dims(tensor)` by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1694 * Build with CLBlast by @tamo in https://github.com/ggerganov/whisper.cpp/pull/1576 * docker : Fix the Publishing of the CUDA Docker Image by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1704 * emscripten: fix "Stack Overflow!" by @Huguet57 in https://github.com/ggerganov/whisper.cpp/pull/1713 * sync : ggml by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1717 * Add error handling to graph_compute by @finnvoor in https://github.com/ggerganov/whisper.cpp/pull/1714 * Updates Package.swift to use ggml as package dependency by @1-ashraful-islam in https://github.com/ggerganov/whisper.cpp/pull/1701 ## New Contributors * @ForkedInTime made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1655 * @OpenWaygate made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1674 * @dimopep made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1695 * @Huguet57 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1713 * @1-ashraful-islam made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1701 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.2...v1.5.3
v1.5.2
18 weeks ago
## Overview Minor maintenance release: - Re-enable CPU BLAS processing after fixing a regression (#1583) Add new example: [wchess](https://github.com/ggerganov/whisper.cpp/tree/master/examples/wchess) https://github.com/ggerganov/whisper.cpp/assets/1991296/c2b2f03c-9684-49f3-8106-357d2d4e67fa Shoutout to @fraxy-v (implementation) and @ejones (grammar) for making it work! ## What's Changed * automatically convert audio on the server by @sapoepsilon in https://github.com/ggerganov/whisper.cpp/pull/1539 * CI : Rectify the Clang-Related workflow issues by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1551 * CI : Add CUDA 11.8.0 support by @bobqianic in https://github.com/ggerganov/whisper.cpp/pull/1554 * Update main program help info by @bebound in https://github.com/ggerganov/whisper.cpp/pull/1560 * Set default CORS headers to allow all by @kasumi-1 in https://github.com/ggerganov/whisper.cpp/pull/1567 * cmake : install required ggml.h header by @gjasny in https://github.com/ggerganov/whisper.cpp/pull/1568 * Backport .srt output format to examples/server by @osdrv in https://github.com/ggerganov/whisper.cpp/pull/1565 * Added support for .vtt format to Whisper server by @aleksanderandrzejewski in https://github.com/ggerganov/whisper.cpp/pull/1578 * ggml : re-enable blas for src0 != F32 by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1583 * Fix 32-bit compiler warning by @Digipom in https://github.com/ggerganov/whisper.cpp/pull/1575 * Remove #if arch(arm) check in Swift Package Manager by @Finnvoor in https://github.com/ggerganov/whisper.cpp/pull/1561 * Pass max-len argument to server wparams by @osdrv in https://github.com/ggerganov/whisper.cpp/pull/1574 * sync : ggml (new ops, new backend, etc) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1602 * Fix `ggml_metal_log` on Intel macs by @Finnvoor in https://github.com/ggerganov/whisper.cpp/pull/1606 * Update CMakeLists.txt by @Kreijstal in https://github.com/ggerganov/whisper.cpp/pull/1615 * target windows 8 or above for prefetchVirtualMemory in llama-talk by @Kreijstal in https://github.com/ggerganov/whisper.cpp/pull/1617 * sync : ggml (Metal fixes, new ops, tests) by @ggerganov in https://github.com/ggerganov/whisper.cpp/pull/1633 * wchess: whisper assisted chess by @fraxy-v in https://github.com/ggerganov/whisper.cpp/pull/1595 ## New Contributors * @sapoepsilon made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1539 * @bebound made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1560 * @kasumi-1 made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1567 * @gjasny made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1568 * @osdrv made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1565 * @aleksanderandrzejewski made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1578 * @Kreijstal made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1615 * @fraxy-v made their first contribution in https://github.com/ggerganov/whisper.cpp/pull/1595 **Full Changelog**: https://github.com/ggerganov/whisper.cpp/compare/v1.5.1...v1.5.2
v1.5.1
21 weeks 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
22 weeks 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
23 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
51 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
1 year 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
1 year 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>
iOS macOS watchOS tvOS
ChartsOrg/Charts v4.1.0
Beautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart.
⭐️ 27,310
🕓 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.1.0
9 weeks ago
## What's Changed * [Feature] added ability to rotate ChartLimitLine label by @berbaspin in https://github.com/danielgindi/Charts/pull/5085 * Add Privacy Manifest by @wlxo0401 in https://github.com/danielgindi/Charts/pull/5141 ## New Contributors * @berbaspin made their first contribution in https://github.com/danielgindi/Charts/pull/5085 * @wlxo0401 made their first contribution in https://github.com/danielgindi/Charts/pull/5141 **Full Changelog**: https://github.com/danielgindi/Charts/compare/5.0.0...5.1.0
5.0.0
45 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
2 years 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
4 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
iOS macOS tvOS
airbnb/lottie-ios 4.4.3
An iOS library to natively render After Effects vector animations
⭐️ 25,130
🕓 6 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.
4.4.3
6 days ago
### Bug fixes in 4.4.3 * Fix issue where animation size could be incorrect after loading async animation (https://github.com/airbnb/lottie-ios/pull/2379) * Update NSPrivacyAccessedAPITypeReasons in privacy manifest (https://github.com/airbnb/lottie-ios/pull/2380) * Include animation duration when computing cost/complexity of Core Animation time remapping (https://github.com/airbnb/lottie-ios/pull/2381) ### New features in 4.4.0 * Add privacy manifest (https://github.com/airbnb/lottie-ios/pull/2252) * Codesign Lottie.xcframework (https://github.com/airbnb/lottie-ios/pull/2259) * Add time remapping support to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/2286) * Add official visionOS support to lottie-ios repo (https://github.com/airbnb/lottie-ios/pull/2287) * lottie-spm now supports visionOS (https://github.com/airbnb/lottie-spm/pull/12) * Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (https://github.com/airbnb/lottie-ios/pull/2260) **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.4.2...4.4.3
4.4.2
2 weeks ago
### Changes in 4.4.2 * Update minimum deployment target to iOS 13.0 / macOS 10.15 (https://github.com/airbnb/lottie-ios/pull/2322) * Add privacy manifest to lottie-spm repo (https://github.com/airbnb/lottie-spm/pull/23) * Add visionOS support to Cocoapods podspec (https://github.com/airbnb/lottie-ios/pull/2348) * Fix incorrect usage of `State(initialValue:)` in `LottieView` (https://github.com/airbnb/lottie-ios/pull/2357) * Use correct version number when building XCFramework bundle (https://github.com/airbnb/lottie-ios/pull/2341) ### New features in 4.4.0 * Add privacy manifest (https://github.com/airbnb/lottie-ios/pull/2252) * Codesign Lottie.xcframework (https://github.com/airbnb/lottie-ios/pull/2259) * Add time remapping support to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/2286) * Add official visionOS support to lottie-ios repo (https://github.com/airbnb/lottie-ios/pull/2287) * lottie-spm now supports visionOS (https://github.com/airbnb/lottie-spm/pull/12) * Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (https://github.com/airbnb/lottie-ios/pull/2260) **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.4.1...4.4.2
4.4.1
8 weeks ago
### Bug fixes in 4.4.1 * Replace os check with canImport so classes are available on visionOS (https://github.com/airbnb/lottie-ios/pull/2294) * Omit privacy manifest from source files in podspec (https://github.com/airbnb/lottie-ios/pull/2307) * Fix crash in Main Thread rendering engine path interpolation implementation (https://github.com/airbnb/lottie-ios/pull/2305) * Fix warning from invalid character in Cocoapods resource bundle identifier (https://github.com/airbnb/lottie-ios/pull/2317) * Fix infinite loop when setting `LottieAnimationView.viewportFrame` (https://github.com/airbnb/lottie-ios/pull/2316) ### New features in 4.4.0 * Add privacy manifest (https://github.com/airbnb/lottie-ios/pull/2252) * Codesign Lottie.xcframework (https://github.com/airbnb/lottie-ios/pull/2259) * Add time remapping support to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/2286) * Add official visionOS support to lottie-ios repo (https://github.com/airbnb/lottie-ios/pull/2287) * lottie-spm now supports visionOS (https://github.com/airbnb/lottie-spm/pull/12) * Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (https://github.com/airbnb/lottie-ios/pull/2260) **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.4.0...4.4.1
4.4.0
12 weeks ago
## New features * Add privacy manifest (https://github.com/airbnb/lottie-ios/pull/2252) * Codesign Lottie.xcframework (https://github.com/airbnb/lottie-ios/pull/2259) * Add time remapping support to Core Animation rendering engine (https://github.com/airbnb/lottie-ios/pull/2286) * Add official visionOS support to lottie-ios repo (https://github.com/airbnb/lottie-ios/pull/2287) * lottie-spm now supports visionOS (https://github.com/airbnb/lottie-spm/pull/12) * Adopt policy on minimum supported Swift / Xcode version, update minimum versions to Swift 5.7 / Xcode 14.1 (https://github.com/airbnb/lottie-ios/pull/2260) ## Bug fixes * Update LottieView to display placeholder using `overlay` instead of `ZStack` (https://github.com/airbnb/lottie-ios/pull/2289) * Fix issue where Core Animation rendering engine couldn't display last frame of animation when paused (https://github.com/airbnb/lottie-ios/pull/2254) * Do not create `DotLottieImageProvider` instance if there's no image files (https://github.com/airbnb/lottie-ios/pull/2271) * Mark DotLottieCache as Sendable (https://github.com/airbnb/lottie-ios/pull/2245) * Fix issue where AnimationKeypath in SolidLayer could be incorrect (https://github.com/airbnb/lottie-ios/pull/2278) * Fix issue where Repeater could be displayed incorrectly (https://github.com/airbnb/lottie-ios/pull/2276) * Include dSYMs in xcframework build (https://github.com/airbnb/lottie-ios/pull/2284) * Fix parsing issue, add support for DotLottieConfiguration in SwiftUI LottieView (https://github.com/airbnb/lottie-ios/pull/2277) * Fix issue where DotLottieImageProvider didn't handle base64 images (https://github.com/airbnb/lottie-ios/pull/2283) * Fix issue where manually interpolated keyframes could animate incorrectly (https://github.com/airbnb/lottie-ios/pull/2285) **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.3.4...4.4.0
4.3.4
20 weeks ago
## What's Changed * Fix parsing regression in 4.3.0 from addition of parsing layer effects by @calda in https://github.com/airbnb/lottie-ios/pull/2208 * Remove old animation layer when creating a new animation layer by @junjielu in https://github.com/airbnb/lottie-ios/pull/2214 * Add configuration setting to remove animated bounds changes by @thedrick in https://github.com/airbnb/lottie-ios/pull/2218 * Change pod dependencies `SwiftUI` and `Combine` to `weak` to ensure compatibility with iOS 12 by @florianrhein in https://github.com/airbnb/lottie-ios/pull/2219 * Fix issue where Repeater would be ignored if not at top level by @calda in https://github.com/airbnb/lottie-ios/pull/2221 * Replace `UIScreen.main` to get display scale on iOS 13.0 and later (#2215) by @hyun99999 in https://github.com/airbnb/lottie-ios/pull/2216 * Dispatch dot lottie file loading onto a single serial queue by @erichoracek in https://github.com/airbnb/lottie-ios/pull/2229 * Clean up unused property in InvertedMatteLayer by @hanton in https://github.com/airbnb/lottie-ios/pull/2241 * Fix issue where LottieView animation would restart from beginning after backgrounding app by @calda in https://github.com/airbnb/lottie-ios/pull/2237 **Full Changelog**: https://github.com/airbnb/lottie-ios/compare/4.3.3...4.3.4
4.3.3
29 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
29 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
30 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
31 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
51 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
iOS macOS tvOS
SDWebImage/SDWebImage 5.19.1
Asynchronous image downloader with cache support as a UIImageView category
⭐️ 24,910
🕓 3 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.19.1 - 5.9 Patch
3 weeks ago
See [all tickets marked for the 5.19.1 release](https://github.com/SDWebImage/SDWebImage/milestone/133) ### Features - Allows the transformer to preserve the UIImage metadata like image format #3688 - Add a protect when NSString passed into sd_setImageWithURL API (which should be NSURL instance) #3686 @aasdsjk ### Performance - Replace NSFileManager.enumeratorAtPath with enumeratorAtURL for performance and RAM saving #3690 @ChengzhiHuang ### Warnings - mark SDWebImageCacheKeyFilter default initializer unavailable & add missing default case of SDCallbackQueue sync/async function #3683 @adamwangxx
5.19.0 - CocoaPods X VisionOS
8 weeks ago
See [all tickets marked for the 5.19.0 release](https://github.com/SDWebImage/SDWebImage/milestone/123) ### Project - [Part 2]Added the official visionOS support with CocoaPods, include Demo/Tests/CI #3673 - This need CocoaPods 1.13.0+ - Next: We'll bump other SDWebImage.org Pods, like `SDWebImageSwiftUI`, `SDWebImageWebPCoder`, `libwebp` on CocoaPods with the visionOS podspec support. ### Features - Added SDWebImageWaitTransition to wait for transition finished and then callback completedBlock #3680 ### Changes - Formally deprecate `sd_cancelCurrentImageLoad` on UIView category, which cause misunderstanding for the same overloaded method in UIImageView category #3654
5.18.12 - 5.8 Patch
8 weeks ago
See [all tickets marked for the 5.18.12 release](https://github.com/SDWebImage/SDWebImage/milestone/132) ### Fixes - Fix the issue that iOS 17 indexed PNG workaround breaks the 16bit RGBA PNG #3678
5.18.11 - 5.18 Patch
9 weeks ago
See [all tickets marked for the 5.18.11 release](https://github.com/SDWebImage/SDWebImage/milestone/131) ### Fixes - Add missing break keyword while converting NSData to SDImageFormat #3672 @adamwangxx
5.18.10 - 5.18 Patch
14 weeks ago
See [all tickets marked for the 5.18.10 release](https://github.com/SDWebImage/SDWebImage/milestone/130) ### Warning - Fix the warning during clang-analyze #3664 #3663
5.18.9 - 5.18 Bugfix
14 weeks ago
See [all tickets marked for the 5.18.9 release](https://github.com/SDWebImage/SDWebImage/milestone/129) ### Fixes - Fix that PNG indexed color fix does not enable on Release Build configuration #3659 #3658 - - The fix was introduced in 5.18.5, but accidentally only enabled in Debug configuration :) - Fix the behavior that query thumbnail from full size data does not sync back the thumbnail image into memory cache #3657 #3656 - - The bug was introduced in 5.14.0, please upgrade if you use thumbnail decoding. - Temp remove the assert when thumbnail cache key used with thumbnail context , this may be changed later #3661 ### Project - Using os_log for our all log to replace the NSLog #3660
5.18.8 - 5.18 Patch
15 weeks ago
See [all tickets marked for the 5.18.8 release](https://github.com/SDWebImage/SDWebImage/milestone/128) ### Fixes - Fix the issue when using the sd_cancelCurrentImageLoad on non-stateful view (like UIImageView.image) #3653
5.18.7 - CocoaPods Privacy Manifest
19 weeks ago
See [all tickets marked for the 5.18.7 release](https://github.com/SDWebImage/SDWebImage/milestone/127) ### Project - Added xcprivacy manifest to CocoaPods #3649 - - Now all the 3 integration supports the privacy manifest. Check README about usage.
5.18.6 - ProMotion/Vision Fix
19 weeks ago
See [all tickets marked for the 5.18.6 release](https://github.com/SDWebImage/SDWebImage/milestone/126) ### Fixes - Use the new solution for CADisplayLink duration calculation and fix 90Hz/120Hz display (iPhone Pro or Vision Pro) #3644 #3579
5.18.5 - iOS 17 Workaround
22 weeks 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
iOS macOS watchOS tvOS

New Releases

VakhoKontridze/VComponents 6.0.3
VComponents is a SwiftUI collection that contains reusable UI components
⭐️ 626
🕓 5 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.
6.0.3
5 hours ago
Refer to the [CHANGELOG](https://github.com/VakhoKontridze/VComponents/blob/main/CHANGELOG.md).
6.0.2
6 weeks ago
Refer to the [CHANGELOG](https://github.com/VakhoKontridze/VComponents/blob/main/CHANGELOG.md).
6.0.1
6 weeks ago
Refer to the [CHANGELOG](https://github.com/VakhoKontridze/VComponents/blob/main/CHANGELOG.md).
6.0.0
9 weeks ago
Refer to the [CHANGELOG](https://github.com/VakhoKontridze/VComponents/blob/main/CHANGELOG.md).
5.3.1
12 weeks ago
Refer to the [CHANGELOG](https://github.com/VakhoKontridze/VComponents/blob/main/CHANGELOG.md).
5.3.0
14 weeks ago
Refer to the [CHANGELOG](https://github.com/VakhoKontridze/VComponents/blob/main/CHANGELOG.md).
5.2.0
19 weeks ago
Refer to the [CHANGELOG](https://github.com/VakhoKontridze/VComponents/blob/main/CHANGELOG.md).
5.1.0
23 weeks ago
Refer to the [CHANGELOG](https://github.com/VakhoKontridze/VComponents/blob/main/CHANGELOG.md).
5.0.0
28 weeks ago
Refer to the [CHANGELOG](https://github.com/VakhoKontridze/VComponents/blob/main/CHANGELOG.md).
4.3.8
33 weeks ago
Refer to the [CHANGELOG](https://github.com/VakhoKontridze/VComponents/blob/main/CHANGELOG.md).
iOS macOS watchOS tvOS
Cybrid-app/cybrid-api-bank-swift v0.115.113
Swift client for the Cybrid Bank APIs
⭐️ 0
🕓 17 minutes ago
iOS macOS watchOS tvOS
e-sites/Cobalt v10.0.4
The E-sites Swift iOS API Client used for standard restful API's
⭐️ 3
🕓 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.
v7.3.3
2 years ago
# Bugfix - Preventing concurrency when refreshing the access token simultaneously for multiple requests
v7.3.2
2 years ago
### Improvement - Added `cachePolicy` to requests, which sets `URLRequest.cachePolicy`
2 years ago
### New features - Added option for PKCE to authorization configuration - Added ability to create AuthorizationCodeRequest to simplify authorization_code grant type
v5.9.5
4 years ago
Adding JSON to underlying error when present
4 years ago
4 years ago
4 years ago
iOS
forXifLess/LinkNavigator 1.2.3
🌊 Easy & Powerful navigation library in SwiftUI
⭐️ 281
🕓 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.
0.6.4
1 year ago
### What's Changed - Correction of a typo. (thanks. @YangJinmo ) - Fixing an issue where the project cannot be built in Swift versions below 5.7 (thanks. @keyboardseokmin) Full Changelog: [0.6.4](https://github.com/interactord/LinkNavigator/compare/0.64)
0.6.3
1 year ago
### What's Changed Clear viewControllers on Sheet dismissal with adaptive action Full Changelog: [0.6.2 ... 0.6.3](https://github.com/interactord/LinkNavigator/compare/0.6.2...0.6.3)
0.6.2
1 year ago
Update Now you can use Link Navigator on iOS 13!
0.6.1
1 year ago
### What's Changed **✨ Large title options are now available in SwiftUI!** After reviewing [the issue](https://github.com/interactord/LinkNavigator/issues/10) posted by @Mercen-Lee, I realized that the suggested feature was necessary and decided to implement it. Thank you for bringing this to our attention
0.5.4
1 year ago
# What's Changed - The dependency version for [TCA example app](https://github.com/interactord/LinkNavigator/tree/main/Examples/TCA-Example) has been updated from 0.49.2 to the latest 0.50.1 **Full Changelog**: https://github.com/interactord/LinkNavigator/compare/0.5.3...0.5.4
0.5.3
1 year ago
# What's Changed ### ✨ We brought two new methods! - `backToLast(path:isAnimated:)` and `rootBackToLast(path:isAnimated:)` - You can rewind to the _last specific page_ in case there are duplicated pages in the navigation stack. - These are inspired by @jay-handhug in #8 Thanks! ### ✨ Renaming - matchingKey → `matchPath` for consistency. ### Others - The dependency version for [TCA example app](https://github.com/interactord/LinkNavigator/tree/main/Examples/TCA-Example) has been updated from 0.47.2 to the latest 0.49.2 **Full Changelog**: https://github.com/interactord/LinkNavigator/compare/0.4.3...0.5.0
0.4.3
1 year ago
# What's Changed - ✨`AnyView` wrapping has been removed! - Now you can implement `RouteBuilder` structs without using [AnyView](https://developer.apple.com/documentation/swiftui/anyview). - The dependency version for [TCA example app](https://github.com/interactord/LinkNavigator/tree/main/Examples/TCA-Example) has been updated from 0.44.1 to the latest 0.47.2 **Full Changelog**: https://github.com/interactord/LinkNavigator/compare/0.3.3...0.4.3
0.3.3
1 year ago
# What's Changed - the order of `rootReloadLast` parameters has been swapped to be consistent with other methods. ```diff - func rootReloadLast(isAnimated: Bool, items: [String : String]) { ... } + func rootReloadLast(items: [String : String], isAnimated: Bool) { ... } ``` **Full Changelog**: https://github.com/interactord/LinkNavigator/compare/0.3.2...0.3.3
0.3.2
1 year ago
# What's Changed - ✨ LinkNavigator methods finally got `Documentation`! - Now every method has its doc comments. Hope they help. 👍🏻 - Infrastructure: filename fixes. (thanks @insub4067 #5) <br> <img width="400" alt="image" src="https://user-images.githubusercontent.com/107832509/202127895-09853fdb-6fb8-4678-ba05-a62be845d666.png"> ## New Contributors * @insub4067 made their first contribution in https://github.com/interactord/LinkNavigator/pull/5 **Full Changelog**: https://github.com/interactord/LinkNavigator/compare/0.3.1...0.3.2
0.3.1
1 year ago
## ✨ New Method! - `alert` - now you can show a system alert via LinkNavigator. <br> <img width="30%" alt="image" src="https://user-images.githubusercontent.com/107832509/200219832-3316a116-00ce-4da2-ada6-485220fc067e.png">
iOS
lszzy/FWFramework 5.3.0
iOS development framework, mainly solves the routine and pain points in native development, and builds a modular project structure to facilitate iOS development. iOS开发框架,主要解决原生开发中的常规和痛点问题,搭建模块化项目架构,方便iOS开发。
⭐️ 9
🕓 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.
[5.3.0] - 2024-04-22
5 hours ago
### Changed * Complete implementation in pure Swift, removing FWObjC submodule * Autoloader's autoload method is changed to Swift calling mechanism * Reconstruct attribute KVO monitoring and add swift native observation method * Reconstruct error capture ErrorManager, pure Swift implementation * Mediator adds Delegate mode, AppResponder can be used optionally * Reconstruct UIViewController life cycle monitoring and add ViewControllerLifecycleObservable protocol * Added commonly used UIKit tool methods ### Migrate 1. Autoloader.autoload is no longer automatically called. It can be manually called at startup or inherited from AppResponder. Migration and upgrade are required. 2. The default lifecyleState of UIViewController is changed to nil. It needs to implement LifecycleObservable or enable monitoring to have a value. It needs to be migrated and upgraded. 3. Due to the Swift implementation mechanism, the associated properties can no longer be accessed during didDeinit of the UIViewController life cycle and need to be migrated and upgraded. 4. The API related to ExceptionManager error capture has been changed to ErrorManager, which needs to be migrated and upgraded. ### Changed * 纯Swift完整功能实现,移除FWObjC子模块 * Autoloader的autoload方法改为Swift调用机制 * 重构属性KVO监听,新增swift原生observe方式 * 重构错误捕获ErrorManager,纯Swift实现 * Mediator新增Delegate模式,AppResponder可选使用 * 重构UIViewController生命周期监听,新增ViewControllerLifecycleObservable协议 * 新增常用UIKit工具方法 ### Migrate 1. Autoloader.autoload不再自动调用,可启动时手工调用或继承AppResponder,需迁移升级 2. UIViewController默认lifecyleState修改为nil,需实现LifecycleObservable或开启监听后才有值,需迁移升级 3. 由于Swift实现机制,UIViewController生命周期didDeinit时不可再访问关联属性,需迁移升级 4. ExceptionManager错误捕获相关API变更为ErrorManager,需迁移升级
[5.2.1] - 2024-04-08
2 weeks ago
### Changed * Fix Xcode compilation warnings, replace and remove deprecated methods * Remove the obsolete method of obtaining the operator and modify the method of obtaining the network type * Added Optional shortcut method, optimized CGFloat, etc. and no longer implement BasicType ### Changed * 修复Xcode编译警告,替换并移除废弃的方法 * 移除废弃的获取运营商方法,修改获取网络类型方法 * 新增Optional快捷方法,优化CGFloat等不再实现BasicType
[5.2.0] - 2024-03-29
3 weeks ago
### Changed * Added new macros such as MappedValueMacro to quickly write interface data models. FWMacro/Macros submodules need to be included. * Remove KeyMapping mode related methods from CodableModel and JSONModel because they are complex to use and do not support inheritance * MappedValue supports ignored configuration * JSONModel annotation MappedValue is compatible with ValidatedValue ### Changed * 新增MappedValueMacro等宏,快速编写接口数据模型,需引入FWMacro/Macros子模块 * CodableModel和JSONModel移除KeyMapping模式相关方法,因为使用复杂且不支持继承 * MappedValue支持ignored忽略配置 * JSONModel注解MappedValue兼容ValidatedValue
[5.1.0] - 2024-03-21
4 weeks ago
### Changed * Added KeyMappable protocol, compatible with CodableModel and JSONModel * Added MappedValue attribute annotation, compatible with CodableModel and JSONModel * Modify JSONModel. After implementing the KeyMappable protocol, it will no longer directly read and write memory. It is recommended to migrate gradually. * Modify Router.Parameter synchronously. When inheriting, new properties must be marked with MappedValue. * Codable supports parsing Any, Any dictionary and Any array type data * Reconstruct BadgeView to unify and simplify the use of badgeOffset * Modify the mirrorDictionary method to no longer filter attributes starting with underscores ### Changed * 新增KeyMappable协议,兼容CodableModel和JSONModel * 新增MappedValue属性注解,兼容CodableModel和JSONModel * 修改JSONModel,当实现KeyMappable协议之后不再直接读写内存,建议逐步迁移 * 同步修改Router.Parameter,继承时新增属性需标记MappedValue * Codable支持解析Any、Any字典和Any数组类型数据 * 重构BadgeView,统一并简化badgeOffset使用 * 修改mirrorDictionary方法不再过滤下划线开头属性
[4.18.3] - 2024-03-12
5 weeks ago
### Fixed * Compatible with Xcode15.3, fix Archive failure problem ### Fixed * 兼容Xcode15.3,修复Archive失败问题
[5.0.3] - 2024-03-11
6 weeks ago
### Changed * JSONModel is compatible with Xcode15.3 * Added delayPlaceholder option to the picture plug-in * TabBarController adds imageInsets attribute * Added global fast ceil extension method * Added controller compatible with TabBar adaptation method when using safeArea layout * Added new controller quick customization Toast|Empty plug-in method * The routing openURL method parameter url is changed to Optional ### Changed * JSONModel兼容Xcode15.3 * 图片插件新增delayPlaceholder选项 * TabBarController新增imageInsets属性 * 新增全局快速ceil扩展方法 * 新增控制器使用safeArea布局时兼容TabBar适配方法 * 新增控制器快捷定制Toast|Empty插件方法 * 路由openURL方法参数url修改为Optional
[5.0.2] - 2024-02-26
8 weeks ago
### Changed * Controller navigationBarHeight is compatible with custom navigationBarHidden settings * Fixed the problem of countLabel not being updated due to position change of customBlock in image preview plug-in ### Changed * 控制器navigationBarHeight兼容自定义navigationBarHidden设置 * 修复图片预览插件customBlock位置变动引起未更新countLabel的问题
[5.0.1] - 2024-02-26
8 weeks ago
### Changed * Added RoundedCornerView to handle semi-circle corner problem without frame * Modify NavigationStyle to get the current status when it is not set * PopupMenu supports specifying container views. Modify showsMaskView to hide maskView. Migration testing is required. * Optimize Database performance and increase ModelFields parsing cache ### Changed * 新增RoundedCornerView无需frame处理半圆圆角问题 * 修改NavigationStyle未设置时获取当前状态 * PopupMenu支持指定容器视图,修改showsMaskView为隐藏maskView,需迁移测试 * 优化Database性能,增加ModelFields解析缓存
[5.0.0] - 2024-02-22
14 weeks ago
### Added * After two years of reconstruction, the Swift version is released, compatible with iOS13+ and no longer compatible with OC * Supports advanced features such as Swift coroutine async, await, property annotation propertyWrapper, etc. * Completely replaceable UI plug-in management for easy project customization * Replaceable picture library and network request layer, with built-in extensions compatible with SDWebImage, Alamofire, etc. * Several years of accumulation of online projects, two years of painstaking effort in refactoring the Swift version, everything you want is available here * Thanks to ChatGPT, thanks to Codeium, and thanks to the authors of all open source libraries used * Finally, thank myself. It’s really not easy to persevere through countless days and nights. ### Migrate 1. Autoloader only loads static class methods by default and needs to be migrated and upgraded. 2. The Router routing binding method API has changed and needs to be migrated and upgraded. 3. JSBridge binding method API has changed and needs to be migrated and upgraded. 4. HTTPRequest network request API has changed and needs to be migrated and upgraded. 5. Other compilation errors need to be fixed using the new API and tested to see if the relevant functions are normal. 6. To use the sample code, please refer to the Example project ### Added * 经过两年的重构,Swift版本发布,兼容iOS13+,不再兼容OC * 支持Swift协程async、await,属性注解propertyWrapper等高级特性 * 完全可替换的UI插件管理,轻松实现项目定制 * 可替换的图片库、网络请求层,自带扩展兼容SDWebImage、Alamofire等 * 几年的线上项目积累,两年心血的Swift版本重构,你想要的,这里全都有 * 感谢ChatGPT、感谢Codeium、感谢使用到的所有开源库的作者 * 最后,感谢自己,无数个日日夜夜,能坚持下来,真的不容易 ### Migrate 1. Autoloader默认仅加载static类方法,需迁移升级 2. Router路由绑定方法API变更,需迁移升级 3. JSBridge绑定方法API变更,需迁移升级 4. HTTPRequest网络请求API变更,需迁移升级 5. 其他编译报错需使用新API修复,并测试相关功能是否正常 6. 使用示例代码可参考Example项目
[4.18.2] - 2023-10-27
25 weeks ago
### Added * UISwitch supports custom offTintColor ### Added * UISwitch支持自定义offTintColor
iOS macOS
grpc/grpc-ios v1.63.0-pre2
gRPC for iOS
⭐️ 34
🕓 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.
gRPC-iOS v1.63.0-pre2 Release
7 hours ago
gRPC-iOS v1.62.5 Release
6 days ago
gRPC-iOS v1.63.0-pre1 Release
20 hours ago
gRPC-iOS v1.62.4 Release
1 week ago
gRPC-iOS v1.62.4 Release
gRPC-iOS v1.62.1 Release
6 weeks ago
gRPC-iOS v1.62.1 Release
gRPC-iOS v1.62.0 Release
8 weeks ago
gRPC-iOS v1.62.0 Release
gRPC-iOS v1.61.1 Release
9 weeks ago
v1.61.1 Release
gRPC-iOS v1.62.0-pre1 Release
9 weeks ago
1.62.0-pre1 release
gRPC-iOS v1.60.1 Release
11 weeks ago
gRPC-iOS v1.60.1 Release
gRPC-iOS v1.61.0 Release
11 weeks ago
gRPC-iOS v1.61.0 Release
Rallista/mapbox-navigation-ios v2.0.0
The last MIT/ISC mapbox navigation for iOS
⭐️ 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.
v2.0.0
9 hours ago
**Full Changelog**: https://github.com/Rallista/mapbox-navigation-ios/compare/v1.4.6...v2.0.0
v1.4.5
17 weeks ago
Version 1.4.5 ### Commits - [253be5a9] Corrected Package.swift errors and removed faulty route condition (#7)
v1.4.4
1 year ago
Version 1.4.4 ### Commits - [3c5a097d] Fix/remove maplibre mocks (#6)
Bundle Resource Fix
1 year ago
User Location Animation Fix
1 year ago
1 year ago
iOS
danielsaidi/SwiftUIKit 4.2.1
SwiftUIKit is a Swift SDK that adds extra functionality to Swift & SwiftUI.
⭐️ 1,282
🕓 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.
4 hours ago
### 💡 Behavior changes * `View.alert` now injects the context as environment object. * `View.label` now takes a localized string key instead of a key. * `View.sheet` now injects the context as environment object. * `View.fullScreenCover` now injects the context as environment object.
5 weeks ago
This version refactors many views to take their styles & configs as environment values, instead of injecting them in the initializer. ### ✨ New features * `CircularProgressBar` now supports customizing animation. * `FilePicker` now supports providing a custom picker config. * `ImagePicker` now supports providing a custom picker config. * `LinkText` has new link style options, to define font weight. * `ListButtonGroup` is a new group view for groping many buttons. * `ListButtonStyle` has a new optional `pressedOpacity` init param. * `ListCard` now supports specifying a custom pressed scale animation. * `String+Replace` has a new options-based replace extension shorthand. ### 💡 Behavior changes * `Color.standardListBackground` has been renamed to `listBackground`. * `FormInlineActionButtonStyle` has been replaced by `ListButtonGroup`. * `FormText` has been renamed to `ListActionRow`, and is now style-based. * `ListActionRow` now supports a `ListAction` instead of a trailing view. ### 🗑️ Deprecations * `DismissableView` has been deprecated due to native SwiftUI support. * `FormRowTitle` has been deprecated due to now being used internally. * `PresentationDetents` has been deprecated due to native SwiftUI support.
10 weeks ago
This version makes the list header not use a section, to avoid disclosure groups.
10 weeks ago
This version fixes a bug in the image list header extension.
17 weeks ago
This version adds a few additional utilities. ### ✨ New features * `ListHeader` has a new image-specific modifier. * `View+Label` makes it easy to convert any view to a label. * `View+macOS` has a new `openAppSettings()` view extension. ### 💡 Behavior changes * `ListHeader` now applies a platform-specific bottom padding.
18 weeks ago
This version makes the `ListBadgeIcon` available on macOS. ### ✨ New features * `ListBadgeIcon` is now available on macOS. * `ListBadgeIcon` has a new `appStore` badge. * `ListBadgeIcon` iconColor is nil by default and adaptive to the badge color.
18 weeks ago
This version adjusts the `ListBadgeIcon` to behave better. ### ✨ New features * `ListBadgeIcon` has new properties and render better on iOS 17. * `ListBadgeIcon` has new predefined types.
21 weeks ago
This patch fixes the default `FormInlineButtonStyle` background in dark mode. ### ✨ New features * `Color` has a new `standardRowBackground` function.
21 weeks ago
This major version bumps the deployment targets to iOS 15, tvOS 15, watchOS 8, and macOS 12. This lets us remove a lot of code for older OS versions. This version also adds everything from `SwiftKit`, which is discontinued. I don't want to manage or add two libraries, so merging them seems valid. This version removes protocols where not needed. This means that it will no longer have a protocol and a standard implementation if not needed. ### ✨ New features * `Bundle+Information` is a new extension with bundle-specific information. * `BundleFileFinder` is a new file service that can search for files in a bundle. * `Collections` is a new namespace with collection-related utilities and extensions. * `Commands` is a new namespace with `macOS` commands. * `CsvParser` is a new class that can be used to parse CSV files and strings. * `Date` is a new namespace with date-related extensions and utilities. * `DeviceIdentifier` is a new class for generating unique device IDs. * `iCloudDocumentSync` is a new class that can sync iCloud document changes. * `Keychain` is a new namespace with keychain-related utilities and services. * `ListAction` is a new enum with quick list action types. * `MimeType` is a new type that defines various MIME types. * `Pasteboard` is a multi-platform pasteboard typealias. * `String` is a new namespace with string-related utilities and extensions. * `URL+iCloud` adds new iCloud-specific URLs. * `ValidationRegex` is a struct that defines various regex-based validation expressions. ### 🐛 Bug fixes * `View` `disableDynamicType` now applies the provided size category instead of always `.medium`. ### 💥 Breaking Changes All previously deprecated code has been removed. * `ActionToggle` has been removed - just use `onChange(of:)` to observe the toggle state instead. * `DismissableView` now uses `DismissAction` instead of `PresentationMode`. * `EdgeInsets` factory functions have been replaced with proper initializers. * `FilePicker` now requires `UTType` instead of `String`. * `FolderMonitor` has been renamed to `DirectoryMonitor`. * `FolderObservable` has been renamed to `DirectoryObservable`. * `FormActionButton` has been replaced with a `FormActionButtonStyle`. * `FormTextButton` has been removed since `ListAction` is so easy to use. * `FormTextEditor` and `FormTextField` has been removed. Use `.formRowTitle(...)` instead. * `ScanCodeGenerator` has been replaced by `Image` and `ImageRepresentable` init extensions.
31 weeks ago
This release deprecates a bunch of things in preparation for the 4.0 bump. SwiftUIKit 4.0 will drop support for iOS 13. ### ✨ New features * `MultilineSubmitViewModifier` is a new view modifier to make multiline text fields submit when return is pressed. * `View` has a new `multilineSubmit(...)` extension. * `View` has a new `onMultilineSubmit(...)` extension. ### 💡 Behavior changes * `ForEachPicker` no longer applies a `.plain` button style. * `ForEachMultiPicker` no longer applies a `.plain` button style. * `SwiftPreviewInspector` now provides a standard implementation. ### 🗑 Deprecations * `MultilineText` has been deprecated. * `DotAnimation` has been renamed to `DotLoadingAnimation`. * `DotAnimationText` has been renamed to `DotLoadingAnimationText`. * `SearchBar` has been deprecated. * `SidebarPresenter` has been deprecated. * `StandardSwiftPreviewInspector` has been deprecated. * `Text+Markdown` has been deprecated. * `UIApplication+Windows` has been deprecated. * `View` height and width modifiers have been deprecated. * `View+Keyboard` has been deprecated.
iOS macOS watchOS tvOS
EricssonBroadcastServices/iOSClientExposureDownload v3.6.0
Download extensions using Exposure
⭐️ 0
🕓 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.
v3.6.0
4 hours ago
## What's Changed * [EMP-21398] feat: Privacy Manifests for SDKs by @robert-pelka in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/34 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/compare/v3.5.3...v3.6.0
v3.5.3
13 weeks ago
## What's Changed * fix: Update dependencies by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/32 * fix : Update dependencies by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/33 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/compare/v3.5.2...v3.5.3
v3.5.2
18 weeks ago
- Update dependencies **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/compare/v3.5.1...v3.5.2
v3.5.1
18 weeks ago
## What's Changed * docs: Update documentation by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/30 * fix : Treat 403 response to entitlement/downloadverified as offline asset has expired by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/31 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/compare/v3.5.0...v3.5.1
v3.5.0
27 weeks ago
- Use `publicationEnd` value when calculating isExpired & getExpiryTime for downloaded assets. SDK will use `downloadverified` end point to fetch `publicationEnd` value if there is an internet connection. NOTE : - The `enigmaDownloadManager.isExpired(assetId: _)` & `enigmaDownloadManager.getExpiryTime(assetId: _)` has been changed to `enigmaDownloadManager.isExpired(assetId: _, environment: _, sessionToken: _) { expired, error in }` `enigmaDownloadManager.getExpiryTime(assetId: _, environment: _, sessionToken: _) { expiryTime, error in }` ## What's Changed * EMP-20382 by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/29 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/compare/v3.4.0...v3.5.0
v3.4.0
43 weeks ago
Changes : - With this version `DownloadState` has a new state `downloading` & added a new API to fetch the state of an `OfflineMediaAsset` : `getDownloadState()` . Check the [README](https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/blob/master/README.md#state-of-a-downloaded-asset) for more information. ## What's Changed * Bug fix : OfflineMediaAsset has wrong state by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/28 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/compare/v3.3.1...v3.4.0
v3.3.1
44 weeks ago
## What's Changed * Add missing download renewed request to the exposure backend by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/27 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/compare/v3.3.0...v3.3.1
v3.3.0
45 weeks ago
Bug fixes : - Entitlement becomes nil after renewal of licences. Changes : - Use the new API for renew the license for downloaded assets `enigmaDownloadManager.renewLicense(assetId: assetId, sessionToken: session, environment: environment) { offlineMediaAsset, error in ... }` . Check [ReadMe](https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/blob/master/README.md#renew-licence) for more information. ## What's Changed * EMP-20054 by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/26 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/compare/v3.2.6...v3.3.0
V 3.2.6
48 weeks ago
## What's Changed * Update dependencies by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/25 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/compare/v3.2.500...v3.2.6
v3.2.5
50 weeks ago
- [Bug Fix] `isExpired` method was always returning true for offline assets. ## What's Changed * EMP-19916 by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/pull/24 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientExposureDownload/compare/v3.2.400...v3.2.500
iOS
EricssonBroadcastServices/iOSClientCast v4.1.0
Google Cast integration
⭐️ 2
🕓 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.
v4.1.0
7 hours ago
## What's Changed * Cocoapods validation failed due to invalid dependency location by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientCast/pull/20 * docs: Update documentation by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientCast/pull/21 * [EMP-21398] feat: Privacy Manifests for SDKs by @robert-pelka in https://github.com/EricssonBroadcastServices/iOSClientCast/pull/22 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientCast/compare/v4.0.300...v4.1.0
V 4.0.3
1 year ago
- Allow passing `CustomImage` s to the cast receiver for current playing asset. This can be used for setting a custom image rather than using the asset's images. ## What's Changed * EMP-19565 by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientCast/pull/19 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientCast/compare/v4.0.200...v4.0.300
v4.0.200
1 year ago
- Add google cast 4.7.1 beta version which supports M1 Macbooks ## What's Changed * EMP-18456 by @udayasri in https://github.com/EricssonBroadcastServices/iOSClientCast/pull/18 **Full Changelog**: https://github.com/EricssonBroadcastServices/iOSClientCast/compare/v4.0.100...v4.0.200
V 4.0.1
2 years ago
- Removed duplicated Google Cast Framework
V 4.0.0
2 years ago
- Add support to SPM & Cocoapods - [Breaking Changes] Change Module name from `Cast` to `iOSClientCast`
V 3.1.0
2 years ago
- Add support for passing default cast subtitle & audio language
V 3.0.2
2 years ago
- Fix app store connect issue when pushing apps
Support for iOS 14 & above
2 years ago
Update iOS Cast SDK to use google Cast iOS SDK 4.6.1 which will support iOS 14 & above versions
iOS

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