anki/cargo/licenses.json

2622 lines
91 KiB
JSON
Raw Normal View History

[
{
"name": "adler",
2021-03-07 10:04:34 +01:00
"version": "1.0.2",
"authors": "Jonas Schievink <jonasschievink@gmail.com>",
"repository": "https://github.com/jonas-schievink/adler.git",
2020-12-15 08:10:25 +01:00
"license": "0BSD OR Apache-2.0 OR MIT",
"license_file": null,
"description": "A simple clean-room implementation of the Adler-32 checksum"
},
{
"name": "ahash",
"version": "0.7.6",
"authors": "Tom Kaitchuck <Tom.Kaitchuck@gmail.com>",
"repository": "https://github.com/tkaitchuck/ahash",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A non-cryptographic hash function using AES-NI for high performance"
},
{
"name": "aho-corasick",
2022-09-24 04:39:21 +02:00
"version": "0.7.19",
"authors": "Andrew Gallant <jamslam@gmail.com>",
"repository": "https://github.com/BurntSushi/aho-corasick",
2020-12-15 08:10:25 +01:00
"license": "MIT OR Unlicense",
"license_file": null,
"description": "Fast multiple substring searching."
},
{
"name": "ammonia",
2022-09-24 04:39:21 +02:00
"version": "3.2.1",
"authors": "Michael Howell <michael@notriddle.com>",
"repository": "https://github.com/rust-ammonia/ammonia",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "HTML Sanitization"
},
2022-09-24 04:39:21 +02:00
{
"name": "android_system_properties",
"version": "0.1.5",
"authors": "Nicolas Silva <nical@fastmail.com>",
"repository": "https://github.com/nical/android_system_properties",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Minimal Android system properties wrapper"
},
2020-11-24 09:41:03 +01:00
{
"name": "anki",
"version": "0.0.0",
"authors": "Ankitects Pty Ltd and contributors",
"repository": null,
"license": "AGPL-3.0-or-later",
"license_file": null,
"description": "Anki's Rust library code"
},
{
"name": "anki_i18n",
"version": "0.0.0",
"authors": "Ankitects Pty Ltd and contributors",
"repository": null,
"license": "AGPL-3.0-or-later",
"license_file": null,
"description": "Anki's Rust library i18n code"
},
{
"name": "anyhow",
2022-09-24 04:39:21 +02:00
"version": "1.0.65",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/anyhow",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Flexible concrete Error type built on std::error::Error"
},
{
"name": "arc-swap",
2022-09-24 04:39:21 +02:00
"version": "1.5.1",
"authors": "Michal 'vorner' Vaner <vorner@vorner.cz>",
"repository": "https://github.com/vorner/arc-swap",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Atomically swappable Arc"
},
{
"name": "arrayref",
"version": "0.3.6",
"authors": "David Roundy <roundyd@physics.oregonstate.edu>",
"repository": "https://github.com/droundy/arrayref",
"license": "BSD-2-Clause",
"license_file": null,
"description": "Macros to take array references of slices"
},
{
"name": "arrayvec",
"version": "0.4.12",
"authors": "bluss",
"repository": "https://github.com/bluss/arrayvec",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A vector with fixed capacity, backed by an array (it can be stored on the stack too). Implements fixed capacity ArrayVec and ArrayString."
},
2021-10-02 12:42:03 +02:00
{
"name": "arrayvec",
2021-11-18 11:54:00 +01:00
"version": "0.7.2",
2021-10-02 12:42:03 +02:00
"authors": "bluss",
"repository": "https://github.com/bluss/arrayvec",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A vector with fixed capacity, backed by an array (it can be stored on the stack too). Implements fixed capacity ArrayVec and ArrayString."
},
2021-01-05 10:58:53 +01:00
{
"name": "async-trait",
2022-09-24 04:39:21 +02:00
"version": "0.1.57",
2021-01-05 10:58:53 +01:00
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/async-trait",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Type erasure for async trait methods"
},
{
"name": "atty",
"version": "0.2.14",
"authors": "softprops <d.tangren@gmail.com>",
"repository": "https://github.com/softprops/atty",
"license": "MIT",
"license_file": null,
"description": "A simple interface for querying atty"
},
{
"name": "autocfg",
"version": "1.1.0",
"authors": "Josh Stone <cuviper@gmail.com>",
"repository": "https://github.com/cuviper/autocfg",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Automatic cfg for Rust compiler features"
},
{
"name": "base64",
"version": "0.13.0",
"authors": "Alice Maz <alice@alicemaz.com>|Marshall Pierce <marshall@mpierce.org>",
"repository": "https://github.com/marshallpierce/rust-base64",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "encodes and decodes base64 as bytes or utf8"
},
{
"name": "bitflags",
2021-10-02 12:42:03 +02:00
"version": "1.3.2",
"authors": "The Rust Project Developers",
"repository": "https://github.com/bitflags/bitflags",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A macro to generate structures which behave like bitflags."
},
{
"name": "blake3",
"version": "1.3.1",
2022-01-15 05:59:43 +01:00
"authors": "Jack O'Connor <oconnor663@gmail.com>|Samuel Neves",
"repository": "https://github.com/BLAKE3-team/BLAKE3",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR CC0-1.0",
"license_file": null,
"description": "the BLAKE3 hash function"
},
2022-01-15 05:59:43 +01:00
{
"name": "block-buffer",
2022-09-24 04:39:21 +02:00
"version": "0.10.3",
2022-01-15 05:59:43 +01:00
"authors": "RustCrypto Developers",
"repository": "https://github.com/RustCrypto/utils",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Buffer type for block processing of data"
},
Plaintext import/export (#1850) * Add crate csv * Add start of csv importing on backend * Add Menomosyne serializer * Add csv and json importing on backend * Add plaintext importing on frontend * Add csv metadata extraction on backend * Add csv importing with GUI * Fix missing dfa file in build Added compile_data_attr, then re-ran cargo/update.py. * Don't use doubly buffered reader in csv * Escape HTML entities if CSV is not HTML Also use name 'is_html' consistently. * Use decimal number as foreign ease (like '2.5') * ForeignCard.ivl → ForeignCard.interval * Only allow fixed set of CSV delimiters * Map timestamp of ForeignCard to native due time * Don't trim CSV records * Document use of empty strings for defaults * Avoid creating CardGenContexts for every note This requires CardGenContext to be generic, so it works both with an owned and borrowed notetype. * Show all accepted file types in import file picker * Add import_json_file() * factor → ease_factor * delimter_from_value → delimiter_from_value * Map columns to fields, not the other way around * Fallback to current config for csv metadata * Add start of new import csv screen * Temporary fix for compilation issue on Linux/Mac * Disable jest bazel action for import-csv Jest fails with an error code if no tests are available, but this would not be noticable on Windows as Jest is not run there. * Fix field mapping issue * Revert "Temporary fix for compilation issue on Linux/Mac" This reverts commit 21f8a261408cdae49ec031aa21a1b659c4f66d82. * Add HtmlSwitch and move Switch to components * Fix spacing and make selectors consistent * Fix shortcut tooltip * Place import button at the top with path * Fix meta column indices * Remove NotetypeForString * Fix queue and type of foreign cards * Support different dupe resolution strategies * Allow dupe resolution selection when importing CSV * Test import of unnormalized text Close #1863. * Fix logging of foreign notes * Implement CSV exports * Use db_scalar() in notes_table_len() * Rework CSV metadata - Notetypes and decks are either defined by a global id or by a column. - If a notetype id is provided, its field map must also be specified. - If a notetype column is provided, fields are now mapped by index instead of name at import time. So the first non-meta column is used for the first field of every note, regardless of notetype. This makes importing easier and should improve compatiblity with files without a notetype column. - Ensure first field can be mapped to a column. - Meta columns must be defined as `#[meta name]:[column index]` instead of in the `#columns` tag. - Column labels contain the raw names defined by the file and must be prettified by the frontend. * Adjust frontend to new backend column mapping * Add force flags for is_html and delimiter * Detect if CSV is HTML by field content * Update dupe resolution labels * Simplify selectors * Fix coalescence of oneofs in TS * Disable meta columns from selection Plus a lot of refactoring. * Make import button stick to the bottom * Write delimiter and html flag into csv * Refetch field map after notetype change * Fix log labels for csv import * Log notes whose deck/notetype was missing * Fix hiding of empty log queues * Implement adding tags to all notes of a csv * Fix dupe resolution not being set in log * Implement adding tags to updated notes of a csv * Check first note field is not empty * Temporary fix for build on Linux/Mac * Fix inverted html check (dae) * Remove unused ftl string * Delimiter → Separator * Remove commented-out line * Don't accept .json files * Tweak tag ftl strings * Remove redundant blur call * Strip sound and add spaces in csv export * Export HTML by default * Fix unset deck in Mnemosyne import Also accept both numbers and strings for notetypes and decks in JSON. * Make DupeResolution::Update the default * Fix missing dot in extension * Make column indices 1-based * Remove StickContainer from TagEditor Fixes line breaking, border and z index on ImportCsvPage. * Assign different key combos to tag editors * Log all updated duplicates Add a log field for the true number of found notes. * Show identical notes as skipped * Split tag-editor into separate ts module (dae) * Add progress for CSV export * Add progress for text import * Tidy-ups after tag-editor split (dae) - import-csv no longer depends on editor - remove some commented lines
2022-06-01 12:26:16 +02:00
{
"name": "bstr",
"version": "0.2.17",
"authors": "Andrew Gallant <jamslam@gmail.com>",
"repository": "https://github.com/BurntSushi/bstr",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A string type that is not required to be valid UTF-8."
},
{
"name": "bumpalo",
2022-09-24 04:39:21 +02:00
"version": "3.11.0",
"authors": "Nick Fitzgerald <fitzgen@gmail.com>",
"repository": "https://github.com/fitzgen/bumpalo",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A fast bump allocation arena for Rust."
},
{
"name": "byteorder",
2021-03-27 05:47:16 +01:00
"version": "1.4.3",
"authors": "Andrew Gallant <jamslam@gmail.com>",
"repository": "https://github.com/BurntSushi/byteorder",
2020-12-15 08:10:25 +01:00
"license": "MIT OR Unlicense",
"license_file": null,
"description": "Library for reading/writing numbers in big-endian and little-endian."
},
{
"name": "bytes",
2022-09-24 04:39:21 +02:00
"version": "1.2.1",
"authors": "Carl Lerche <me@carllerche.com>|Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/tokio-rs/bytes",
"license": "MIT",
"license_file": null,
"description": "Types and traits for working with bytes"
},
{
"name": "cc",
"version": "1.0.73",
"authors": "Alex Crichton <alex@alexcrichton.com>",
"repository": "https://github.com/alexcrichton/cc-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A build-time dependency for Cargo build scripts to assist in invoking the native C compiler to compile native C code into a static archive to be linked into Rust code."
},
{
"name": "cfg-if",
"version": "1.0.0",
"authors": "Alex Crichton <alex@alexcrichton.com>",
"repository": "https://github.com/alexcrichton/cfg-if",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A macro to ergonomically define an item depending on a large number of #[cfg] parameters. Structured like an if-else chain, the first matching branch is the item that gets emitted."
},
{
"name": "chrono",
2022-09-24 04:39:21 +02:00
"version": "0.4.22",
"authors": null,
"repository": "https://github.com/chronotope/chrono",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Date and time library for Rust"
},
{
"name": "coarsetime",
2022-09-24 04:39:21 +02:00
"version": "0.1.22",
"authors": "Frank Denis <github@pureftpd.org>",
"repository": "https://github.com/jedisct1/rust-coarsetime",
"license": "ISC",
"license_file": null,
"description": "Time and duration crate optimized for speed"
},
{
"name": "constant_time_eq",
"version": "0.1.5",
"authors": "Cesar Eduardo Barros <cesarb@cesarb.eti.br>",
"repository": "https://github.com/cesarb/constant_time_eq",
"license": "CC0-1.0",
"license_file": null,
"description": "Compares two equal-sized byte strings in constant time."
},
{
"name": "core-foundation",
"version": "0.9.3",
"authors": "The Servo Project Developers",
"repository": "https://github.com/servo/core-foundation-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Bindings to Core Foundation for macOS"
},
{
"name": "core-foundation-sys",
"version": "0.8.3",
"authors": "The Servo Project Developers",
"repository": "https://github.com/servo/core-foundation-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Bindings to Core Foundation for macOS"
},
{
"name": "crc32fast",
"version": "1.3.2",
"authors": "Sam Rijs <srijs@airpost.net>|Alex Crichton <alex@alexcrichton.com>",
"repository": "https://github.com/srijs/rust-crc32fast",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Fast, SIMD-accelerated CRC32 (IEEE) checksum computation"
},
{
"name": "crossbeam-channel",
2022-09-24 04:39:21 +02:00
"version": "0.5.6",
2022-01-15 05:59:43 +01:00
"authors": null,
"repository": "https://github.com/crossbeam-rs/crossbeam",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Multi-producer multi-consumer channels for message passing"
},
{
"name": "crossbeam-utils",
2022-09-24 04:39:21 +02:00
"version": "0.8.11",
2022-01-15 05:59:43 +01:00
"authors": null,
"repository": "https://github.com/crossbeam-rs/crossbeam",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Utilities for concurrent programming"
},
{
2022-01-15 05:59:43 +01:00
"name": "crypto-common",
2022-09-24 04:39:21 +02:00
"version": "0.1.6",
2022-01-15 05:59:43 +01:00
"authors": "RustCrypto Developers",
"repository": "https://github.com/RustCrypto/traits",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
2022-01-15 05:59:43 +01:00
"description": "Common cryptographic traits"
},
Plaintext import/export (#1850) * Add crate csv * Add start of csv importing on backend * Add Menomosyne serializer * Add csv and json importing on backend * Add plaintext importing on frontend * Add csv metadata extraction on backend * Add csv importing with GUI * Fix missing dfa file in build Added compile_data_attr, then re-ran cargo/update.py. * Don't use doubly buffered reader in csv * Escape HTML entities if CSV is not HTML Also use name 'is_html' consistently. * Use decimal number as foreign ease (like '2.5') * ForeignCard.ivl → ForeignCard.interval * Only allow fixed set of CSV delimiters * Map timestamp of ForeignCard to native due time * Don't trim CSV records * Document use of empty strings for defaults * Avoid creating CardGenContexts for every note This requires CardGenContext to be generic, so it works both with an owned and borrowed notetype. * Show all accepted file types in import file picker * Add import_json_file() * factor → ease_factor * delimter_from_value → delimiter_from_value * Map columns to fields, not the other way around * Fallback to current config for csv metadata * Add start of new import csv screen * Temporary fix for compilation issue on Linux/Mac * Disable jest bazel action for import-csv Jest fails with an error code if no tests are available, but this would not be noticable on Windows as Jest is not run there. * Fix field mapping issue * Revert "Temporary fix for compilation issue on Linux/Mac" This reverts commit 21f8a261408cdae49ec031aa21a1b659c4f66d82. * Add HtmlSwitch and move Switch to components * Fix spacing and make selectors consistent * Fix shortcut tooltip * Place import button at the top with path * Fix meta column indices * Remove NotetypeForString * Fix queue and type of foreign cards * Support different dupe resolution strategies * Allow dupe resolution selection when importing CSV * Test import of unnormalized text Close #1863. * Fix logging of foreign notes * Implement CSV exports * Use db_scalar() in notes_table_len() * Rework CSV metadata - Notetypes and decks are either defined by a global id or by a column. - If a notetype id is provided, its field map must also be specified. - If a notetype column is provided, fields are now mapped by index instead of name at import time. So the first non-meta column is used for the first field of every note, regardless of notetype. This makes importing easier and should improve compatiblity with files without a notetype column. - Ensure first field can be mapped to a column. - Meta columns must be defined as `#[meta name]:[column index]` instead of in the `#columns` tag. - Column labels contain the raw names defined by the file and must be prettified by the frontend. * Adjust frontend to new backend column mapping * Add force flags for is_html and delimiter * Detect if CSV is HTML by field content * Update dupe resolution labels * Simplify selectors * Fix coalescence of oneofs in TS * Disable meta columns from selection Plus a lot of refactoring. * Make import button stick to the bottom * Write delimiter and html flag into csv * Refetch field map after notetype change * Fix log labels for csv import * Log notes whose deck/notetype was missing * Fix hiding of empty log queues * Implement adding tags to all notes of a csv * Fix dupe resolution not being set in log * Implement adding tags to updated notes of a csv * Check first note field is not empty * Temporary fix for build on Linux/Mac * Fix inverted html check (dae) * Remove unused ftl string * Delimiter → Separator * Remove commented-out line * Don't accept .json files * Tweak tag ftl strings * Remove redundant blur call * Strip sound and add spaces in csv export * Export HTML by default * Fix unset deck in Mnemosyne import Also accept both numbers and strings for notetypes and decks in JSON. * Make DupeResolution::Update the default * Fix missing dot in extension * Make column indices 1-based * Remove StickContainer from TagEditor Fixes line breaking, border and z index on ImportCsvPage. * Assign different key combos to tag editors * Log all updated duplicates Add a log field for the true number of found notes. * Show identical notes as skipped * Split tag-editor into separate ts module (dae) * Add progress for CSV export * Add progress for text import * Tidy-ups after tag-editor split (dae) - import-csv no longer depends on editor - remove some commented lines
2022-06-01 12:26:16 +02:00
{
"name": "csv",
"version": "1.1.6",
"authors": "Andrew Gallant <jamslam@gmail.com>",
"repository": "https://github.com/BurntSushi/rust-csv",
"license": "MIT OR Unlicense",
"license_file": null,
"description": "Fast CSV parsing with support for serde."
},
{
"name": "csv-core",
"version": "0.1.10",
"authors": "Andrew Gallant <jamslam@gmail.com>",
"repository": "https://github.com/BurntSushi/rust-csv",
"license": "MIT OR Unlicense",
"license_file": null,
"description": "Bare bones CSV parsing with no_std support."
},
{
"name": "digest",
2022-09-24 04:39:21 +02:00
"version": "0.10.5",
"authors": "RustCrypto Developers",
"repository": "https://github.com/RustCrypto/traits",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Traits for cryptographic hash functions"
},
{
2021-10-02 12:42:03 +02:00
"name": "dirs-next",
"version": "2.0.0",
"authors": "The @xdg-rs members",
"repository": "https://github.com/xdg-rs/dirs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A tiny low-level library that provides platform-specific standard locations of directories for config, cache and other data on Linux, Windows, macOS and Redox by leveraging the mechanisms defined by the XDG base/user directory specifications on Linux, the Known Folder API on Windows, and the Standard Directory guidelines on macOS."
},
{
2021-10-02 12:42:03 +02:00
"name": "dirs-sys-next",
"version": "0.1.2",
"authors": "The @xdg-rs members",
"repository": "https://github.com/xdg-rs/dirs/tree/master/dirs-sys",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
2021-10-02 12:42:03 +02:00
"description": "system-level helper functions for the dirs and directories crates"
},
{
"name": "dissimilar",
"version": "1.0.4",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/dissimilar",
"license": "Apache-2.0",
"license_file": null,
"description": "Diff library with semantic cleanup, based on Google's diff-match-patch"
},
{
"name": "either",
2022-09-24 04:39:21 +02:00
"version": "1.8.0",
"authors": "bluss",
"repository": "https://github.com/bluss/either",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "The enum `Either` with variants `Left` and `Right` is a general purpose sum type with two cases."
},
{
"name": "encoding_rs",
2022-09-24 04:39:21 +02:00
"version": "0.8.31",
"authors": "Henri Sivonen <hsivonen@hsivonen.fi>",
"repository": "https://github.com/hsivonen/encoding_rs",
2022-09-24 04:39:21 +02:00
"license": "(Apache-2.0 OR MIT) AND BSD-3-Clause",
"license_file": null,
"description": "A Gecko-oriented implementation of the Encoding Standard"
},
{
"name": "env_logger",
2022-09-24 04:39:21 +02:00
"version": "0.9.1",
"authors": null,
"repository": "https://github.com/env-logger-rs/env_logger/",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A logging implementation for `log` which is configured via an environment variable."
},
{
"name": "fallible-iterator",
"version": "0.2.0",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/rust-fallible-iterator",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Fallible iterator traits"
},
{
"name": "fallible-streaming-iterator",
"version": "0.1.9",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/fallible-streaming-iterator",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Fallible streaming iteration"
},
2022-01-15 05:59:43 +01:00
{
"name": "fastrand",
2022-09-24 04:39:21 +02:00
"version": "1.8.0",
2022-01-15 05:59:43 +01:00
"authors": "Stjepan Glavina <stjepang@gmail.com>",
"repository": "https://github.com/smol-rs/fastrand",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A simple and fast random number generator"
},
{
"name": "fixedbitset",
2022-09-24 04:39:21 +02:00
"version": "0.4.2",
"authors": "bluss",
2022-01-15 05:59:43 +01:00
"repository": "https://github.com/petgraph/fixedbitset",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "FixedBitSet is a simple bitset collection"
},
{
"name": "flate2",
2022-09-24 04:39:21 +02:00
"version": "1.0.24",
"authors": "Alex Crichton <alex@alexcrichton.com>|Josh Triplett <josh@joshtriplett.org>",
"repository": "https://github.com/rust-lang/flate2-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
2022-09-24 04:39:21 +02:00
"description": "DEFLATE compression and decompression exposed as Read/BufRead/Write streams. Supports miniz_oxide and multiple zlib implementations. Supports zlib, gzip, and raw deflate streams."
},
{
"name": "fluent",
2021-10-02 12:42:03 +02:00
"version": "0.16.0",
"authors": "Zibi Braniecki <gandalf@mozilla.com>|Staś Małolepszy <stas@mozilla.com>",
"repository": "https://github.com/projectfluent/fluent-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A localization system designed to unleash the entire expressive power of natural language translations."
},
{
"name": "fluent-bundle",
"version": "0.15.2",
"authors": "Zibi Braniecki <gandalf@mozilla.com>|Staś Małolepszy <stas@mozilla.com>",
"repository": "https://github.com/projectfluent/fluent-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A localization system designed to unleash the entire expressive power of natural language translations."
},
{
"name": "fluent-langneg",
"version": "0.13.0",
"authors": "Zibi Braniecki <gandalf@mozilla.com>",
"repository": "https://github.com/projectfluent/fluent-langneg-rs",
"license": "Apache-2.0",
"license_file": null,
"description": "A library for language and locale negotiation."
},
{
"name": "fluent-syntax",
2021-03-27 04:24:11 +01:00
"version": "0.11.0",
"authors": "Zibi Braniecki <gandalf@mozilla.com>|Staś Małolepszy <stas@mozilla.com>",
"repository": "https://github.com/projectfluent/fluent-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Parser/Serializer tools for Fluent Syntax."
},
{
"name": "fnv",
"version": "1.0.7",
"authors": "Alex Crichton <alex@alexcrichton.com>",
"repository": "https://github.com/servo/rust-fnv",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "FowlerNollVo hash function"
},
{
"name": "foreign-types",
"version": "0.3.2",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/foreign-types",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A framework for Rust wrappers over C APIs"
},
{
"name": "foreign-types-shared",
"version": "0.1.1",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/foreign-types",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "An internal crate used by foreign-types"
},
{
"name": "form_urlencoded",
2022-09-24 04:39:21 +02:00
"version": "1.1.0",
"authors": "The rust-url developers",
"repository": "https://github.com/servo/rust-url",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Parser and serializer for the application/x-www-form-urlencoded syntax, as used by HTML forms."
},
{
"name": "futf",
"version": "0.1.5",
"authors": "Keegan McAllister <kmcallister@mozilla.com>",
"repository": "https://github.com/servo/futf",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Handling fragments of UTF-8"
},
{
"name": "futures",
2022-09-24 04:39:21 +02:00
"version": "0.3.24",
2021-12-03 11:04:47 +01:00
"authors": null,
"repository": "https://github.com/rust-lang/futures-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "An implementation of futures and streams featuring zero allocations, composability, and iterator-like interfaces."
},
{
"name": "futures-channel",
2022-09-24 04:39:21 +02:00
"version": "0.3.24",
2021-12-03 11:04:47 +01:00
"authors": null,
"repository": "https://github.com/rust-lang/futures-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Channels for asynchronous communication using futures-rs."
},
{
"name": "futures-core",
2022-09-24 04:39:21 +02:00
"version": "0.3.24",
2021-12-03 11:04:47 +01:00
"authors": null,
"repository": "https://github.com/rust-lang/futures-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "The core traits and types in for the `futures` library."
},
{
"name": "futures-executor",
2022-09-24 04:39:21 +02:00
"version": "0.3.24",
2021-12-03 11:04:47 +01:00
"authors": null,
"repository": "https://github.com/rust-lang/futures-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Executors for asynchronous tasks based on the futures-rs library."
},
{
"name": "futures-io",
2022-09-24 04:39:21 +02:00
"version": "0.3.24",
2021-12-03 11:04:47 +01:00
"authors": null,
"repository": "https://github.com/rust-lang/futures-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "The `AsyncRead`, `AsyncWrite`, `AsyncSeek`, and `AsyncBufRead` traits for the futures-rs library."
},
{
"name": "futures-macro",
2022-09-24 04:39:21 +02:00
"version": "0.3.24",
2021-12-03 11:04:47 +01:00
"authors": null,
"repository": "https://github.com/rust-lang/futures-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "The futures-rs procedural macro implementations."
},
{
"name": "futures-sink",
2022-09-24 04:39:21 +02:00
"version": "0.3.24",
2021-12-03 11:04:47 +01:00
"authors": null,
"repository": "https://github.com/rust-lang/futures-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "The asynchronous `Sink` trait for the futures-rs library."
},
{
"name": "futures-task",
2022-09-24 04:39:21 +02:00
"version": "0.3.24",
2021-12-03 11:04:47 +01:00
"authors": null,
"repository": "https://github.com/rust-lang/futures-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Tools for working with tasks."
},
{
"name": "futures-util",
2022-09-24 04:39:21 +02:00
"version": "0.3.24",
2021-12-03 11:04:47 +01:00
"authors": null,
"repository": "https://github.com/rust-lang/futures-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Common utilities and extension traits for the futures-rs library."
},
{
"name": "generic-array",
2022-09-24 04:39:21 +02:00
"version": "0.14.6",
"authors": "Bartłomiej Kamiński <fizyk20@gmail.com>|Aaron Trent <novacrazy@gmail.com>",
"repository": "https://github.com/fizyk20/generic-array.git",
"license": "MIT",
"license_file": null,
"description": "Generic types implementing functionality of arrays"
},
{
"name": "getopts",
"version": "0.2.21",
"authors": "The Rust Project Developers",
"repository": "https://github.com/rust-lang/getopts",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "getopts-like option parsing."
},
{
"name": "getrandom",
2022-09-24 04:39:21 +02:00
"version": "0.2.7",
2021-02-03 11:29:48 +01:00
"authors": "The Rand Project Developers",
"repository": "https://github.com/rust-random/getrandom",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A small cross-platform library for retrieving random data from system source"
},
{
"name": "h2",
2022-09-24 04:39:21 +02:00
"version": "0.3.14",
"authors": "Carl Lerche <me@carllerche.com>|Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/hyperium/h2",
"license": "MIT",
"license_file": null,
"description": "An HTTP/2 client and server"
},
2021-06-25 08:22:21 +02:00
{
"name": "hashbrown",
2022-09-24 04:39:21 +02:00
"version": "0.12.3",
2021-06-25 08:22:21 +02:00
"authors": "Amanieu d'Antras <amanieu@gmail.com>",
"repository": "https://github.com/rust-lang/hashbrown",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A Rust port of Google's SwissTable hash map"
},
{
"name": "hashlink",
2022-09-24 04:39:21 +02:00
"version": "0.8.1",
"authors": "kyren <kerriganw@gmail.com>",
"repository": "https://github.com/kyren/hashlink",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "HashMap-like containers that hold their key-value pairs in a user controllable order"
},
{
"name": "heck",
2022-09-24 04:39:21 +02:00
"version": "0.4.0",
"authors": "Without Boats <woboats@gmail.com>",
"repository": "https://github.com/withoutboats/heck",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "heck is a case conversion library."
},
{
"name": "hermit-abi",
2021-06-25 07:35:25 +02:00
"version": "0.1.19",
"authors": "Stefan Lankes",
"repository": "https://github.com/hermitcore/libhermit-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "hermit-abi is small interface to call functions from the unikernel RustyHermit. It is used to build the target `x86_64-unknown-hermit`."
},
{
"name": "hex",
2021-03-07 10:04:34 +01:00
"version": "0.4.3",
"authors": "KokaKiwi <kokakiwi@kokakiwi.net>",
"repository": "https://github.com/KokaKiwi/rust-hex",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Encoding and decoding data into/from hexadecimal representation."
},
{
"name": "html5ever",
2022-09-24 04:39:21 +02:00
"version": "0.26.0",
"authors": "The html5ever Project Developers",
"repository": "https://github.com/servo/html5ever",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "High-performance browser-grade HTML5 parser"
},
{
"name": "htmlescape",
"version": "0.3.1",
"authors": "Viktor Dahl <pazaconyoman@gmail.com>",
"repository": "https://github.com/veddan/rust-htmlescape",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT OR MPL-2.0",
"license_file": null,
"description": "A library for HTML entity encoding and decoding"
},
{
"name": "http",
2022-09-24 04:39:21 +02:00
"version": "0.2.8",
"authors": "Alex Crichton <alex@alexcrichton.com>|Carl Lerche <me@carllerche.com>|Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/hyperium/http",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A set of types for representing HTTP requests and responses."
},
{
"name": "http-body",
2022-09-24 04:39:21 +02:00
"version": "0.4.5",
"authors": "Carl Lerche <me@carllerche.com>|Lucio Franco <luciofranco14@gmail.com>|Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/hyperium/http-body",
"license": "MIT",
"license_file": null,
"description": "Trait representing an asynchronous, streaming, HTTP request or response body."
},
{
"name": "httparse",
2022-09-24 04:39:21 +02:00
"version": "1.8.0",
"authors": "Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/seanmonstar/httparse",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A tiny, safe, speedy, zero-copy HTTP/1.x parser."
},
{
"name": "httpdate",
2021-11-18 11:54:00 +01:00
"version": "1.0.2",
"authors": "Pyfisch <pyfisch@posteo.org>",
"repository": "https://github.com/pyfisch/httpdate",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "HTTP date parsing and formatting"
},
{
"name": "humantime",
2021-02-03 11:29:48 +01:00
"version": "2.1.0",
"authors": "Paul Colomiets <paul@colomiets.name>",
"repository": "https://github.com/tailhook/humantime",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A parser and formatter for std::time::{Duration, SystemTime}"
},
{
"name": "hyper",
2022-09-24 04:39:21 +02:00
"version": "0.14.20",
"authors": "Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/hyperium/hyper",
"license": "MIT",
"license_file": null,
"description": "A fast and correct HTTP library."
},
{
"name": "hyper-rustls",
"version": "0.22.1",
"authors": "Joseph Birr-Pixton <jpixton@gmail.com>",
"repository": "https://github.com/ctz/hyper-rustls",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR ISC OR MIT",
"license_file": null,
"description": "Rustls+hyper integration for pure rust HTTPS"
},
{
"name": "hyper-timeout",
"version": "0.4.1",
"authors": "Herman J. Radtke III <herman@hermanradtke.com>",
"repository": "https://github.com/hjr3/hyper-timeout",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A connect, read and write timeout aware connector to be used with hyper Client."
},
{
"name": "hyper-tls",
"version": "0.5.0",
"authors": "Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/hyperium/hyper-tls",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Default TLS implementation for use with hyper"
},
2022-09-24 04:39:21 +02:00
{
"name": "iana-time-zone",
"version": "0.1.50",
"authors": "Andrew Straw <strawman@astraw.com>",
"repository": "https://github.com/strawlab/iana-time-zone",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "get the IANA time zone for the current system"
},
V3 parent limits (#1638) * avoid repinning Rust deps by default * add id_tree dependency * Respect intermediate child limits in v3 * Test new behaviour of v3 counts * Rework v3 queue building to respect parent limits * Add missing did field to SQL query * Fix `LimitTreeMap::is_exhausted()` * Rework tree building logic https://github.com/ankitects/anki/pull/1638#discussion_r798328734 * Add timer for build_queues() * `is_exhausted()` -> `limit_reached()` * Move context and limits into `QueueBuilder` This allows for moving more logic into QueueBuilder, so less passing around of arguments. Unfortunately, some tests will require additional work to set up. * Fix stop condition in new_cards_by_position * Fix order gather order of new cards by deck * Add scheduler/queue/builder/burying.rs * Fix bad tree due to unsorted child decks * Fix comment * Fix `cap_new_to_review_rec()` * Add test for new card gathering * Always sort `child_decks()` * Fix deck removal in `cap_new_to_review_rec()` * Fix sibling ordering in new card gathering * Remove limits for deck total count with children * Add random gather order * Remove bad sibling order handling All routines ensure ascending order now. Also do some other minor refactoring. * Remove queue truncating All routines stop now as soon as the root limit is reached. * Move deck fetching into `QueueBuilder::new()` * Rework new card gather and sort options https://github.com/ankitects/anki/pull/1638#issuecomment-1032173013 * Disable new sort order choices ... depending on set gather order. * Use enum instead of numbers * Ensure valid sort order setting * Update new gather and sort order tooltips * Warn about random insertion order with v3 * Revert "Add timer for build_queues()" This reverts commit c9f5fc6ebe87953c17a0c842990b009b5596c69c. * Update rslib/src/storage/card/mod.rs (dae) * minor wording tweaks to the tooltips (dae) + move legacy strings to bottom + consistent capitalization (our leech action still needs fixing, but that will require introducing a new 'suspend card' string as the existing one is used elsewhere as well)
2022-02-10 00:55:43 +01:00
{
"name": "id_tree",
"version": "1.8.0",
"authors": "Ian Burns <iwburns8@gmail.com>",
"repository": "https://github.com/iwburns/id-tree",
"license": "MIT",
"license_file": null,
"description": "A library for creating and modifying Tree structures."
},
{
"name": "idna",
2022-09-24 04:39:21 +02:00
"version": "0.3.0",
"authors": "The rust-url developers",
"repository": "https://github.com/servo/rust-url/",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "IDNA (Internationalizing Domain Names in Applications) and Punycode."
},
{
"name": "indexmap",
2022-09-24 04:39:21 +02:00
"version": "1.9.1",
"authors": null,
"repository": "https://github.com/bluss/indexmap",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
2022-09-24 04:39:21 +02:00
"description": "A hash table with consistent order and fast iteration."
},
{
"name": "inflections",
"version": "1.1.1",
"authors": "Caleb Meredith <calebmeredith8@gmail.com>",
"repository": "https://docs.rs/inflections",
"license": "MIT",
"license_file": null,
"description": "High performance inflection transformation library for changing properties of words like the case."
},
{
"name": "instant",
"version": "0.1.12",
"authors": "sebcrozet <developer@crozet.re>",
"repository": "https://github.com/sebcrozet/instant",
"license": "BSD-3-Clause",
"license_file": null,
"description": "A partial replacement for std::time::Instant that works on WASM too."
},
{
"name": "intl-memoizer",
2021-02-03 11:29:48 +01:00
"version": "0.5.1",
"authors": "Zibi Braniecki <gandalf@mozilla.com>|Manish Goregaokar <manishsmail@gmail.com>",
"repository": "https://github.com/projectfluent/fluent-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A memoizer specifically tailored for storing lazy-initialized intl formatters."
},
{
"name": "intl_pluralrules",
2021-02-03 11:29:48 +01:00
"version": "7.0.1",
"authors": "Kekoa Riggin <kekoariggin@gmail.com>|Zibi Braniecki <zbraniecki@mozilla.com>",
"repository": "https://github.com/zbraniecki/pluralrules",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Unicode Plural Rules categorizer for numeric input."
},
{
"name": "ipnet",
2022-09-24 04:39:21 +02:00
"version": "2.5.0",
"authors": "Kris Price <kris@krisprice.nz>",
"repository": "https://github.com/krisprice/ipnet",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Provides types and useful methods for working with IPv4 and IPv6 network addresses, commonly called IP prefixes. The new `IpNet`, `Ipv4Net`, and `Ipv6Net` types build on the existing `IpAddr`, `Ipv4Addr`, and `Ipv6Addr` types already provided in Rust's standard library and align to their design to stay consistent. The module also provides useful traits that extend `Ipv4Addr` and `Ipv6Addr` with methods for `Add`, `Sub`, `BitAnd`, and `BitOr` operations. The module only uses stable feature so it is guaranteed to compile using the stable toolchain."
},
2021-06-25 07:35:25 +02:00
{
"name": "itertools",
2022-09-24 04:39:21 +02:00
"version": "0.10.5",
2021-06-25 07:35:25 +02:00
"authors": "bluss",
"repository": "https://github.com/rust-itertools/itertools",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Extra iterator adaptors, iterator methods, free functions, and macros."
},
{
"name": "itoa",
2021-10-02 12:42:03 +02:00
"version": "0.4.8",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/itoa",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Fast functions for printing integer primitives to an io::Write"
},
2022-01-15 05:59:43 +01:00
{
"name": "itoa",
2022-09-24 04:39:21 +02:00
"version": "1.0.3",
2022-01-15 05:59:43 +01:00
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/itoa",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Fast integer primitive to string conversion"
},
Backups (#1685) * Add zstd dep * Implement backend backup with zstd * Implement backup thinning * Write backup meta * Use new file ending anki21b * Asynchronously backup on collection close in Rust * Revert "Add zstd dep" This reverts commit 3fcb2141d2be15f907269d13275c41971431385c. * Add zstd again * Take backup col path from col struct * Fix formatting * Implement backup restoring on backend * Normalize restored media file names * Refactor `extract_legacy_data()` A bit cumbersome due to borrowing rules. * Refactor * Make thinning calendar-based and gradual * Consider last kept backups of previous stages * Import full apkgs and colpkgs with backend * Expose new backup settings * Test `BackupThinner` and make it deterministic * Mark backup_path when closing optional * Delete leaky timer * Add progress updates for restoring media * Write restored collection to tempfile first * Do collection compression in the background thread This has us currently storing an uncompressed and compressed copy of the collection in memory (not ideal), but means the collection can be closed without waiting for compression to complete. On a large collection, this takes a close and reopen from about 0.55s to about 0.07s. The old backup code for comparison: about 0.35s for compression off, about 8.5s for zip compression. * Use multithreading in zstd compression On my system, this reduces the compression time of a large collection from about 0.55s to 0.08s. * Stream compressed collection data into zip file * Tweak backup explanation + Fix incorrect tab order for ignore accents option * Decouple restoring backup and full import In the first case, no profile is opened, unless the new collection succeeds to load. In the second case, either the old collection is reloaded or the new one is loaded. * Fix number gap in Progress message * Don't revert backup when media fails but report it * Tweak error flow * Remove native BackupLimits enum * Fix type annotation * Add thinning test for whole year * Satisfy linter * Await async backup to finish * Move restart disclaimer out of backup tab Should be visible regardless of the current tab. * Write restored collection in chunks * Refactor * Write media in chunks and refactor * Log error if removing file fails * join_backup_task -> await_backup_completion * Refactor backup.rs * Refactor backup meta and collection extraction * Fix wrong error being returned * Call sync_all() on new collection * Add ImportError * Store logger in Backend, instead of creating one on demand init_backend() accepts a Logger rather than a log file, to allow other callers to customize the logger if they wish. In the future we may want to explore using the tracing crate as an alternative; it's a bit more ergonomic, as a logger doesn't need to be passed around, and it plays more nicely with async code. * Sync file contents prior to rename; sync folder after rename. * Limit backup creation to once per 30 min * Use zstd::stream::copy_decode * Make importing abortable * Don't revert if backup media is aborted * Set throttle implicitly * Change force flag to minimum_backup_interval * Don't attempt to open folders on Windows * Join last backup thread before starting new one Also refactor. * Disable auto sync and backup when restoring again * Force backup on full download * Include the reason why a media file import failed, and the file path - Introduce a FileIoError that contains a string representation of the underlying I/O error, and an associated path. There are a few places in the code where we're currently manually including the filename in a custom error message, and this is a step towards a more consistent approach (but we may be better served with a more general approach in the future similar to Anyhow's .context()) - Move the error message into importing.ftl, as it's a bit neater when error messages live in the same file as the rest of the messages associated with some functionality. * Fix importing of media files * Minor wording tweaks * Save an allocation I18n strings with replacements are already strings, so we can skip the extra allocation. Not that it matters here at all. * Terminate import if file missing from archive If a third-party tool is creating invalid archives, the user should know about it. This should be rare, so I did not attempt to make it translatable. * Skip multithreaded compression on small collections Co-authored-by: Damien Elmes <gpg@ankiweb.net>
2022-03-07 06:11:31 +01:00
{
"name": "jobserver",
2022-09-24 04:39:21 +02:00
"version": "0.1.25",
Backups (#1685) * Add zstd dep * Implement backend backup with zstd * Implement backup thinning * Write backup meta * Use new file ending anki21b * Asynchronously backup on collection close in Rust * Revert "Add zstd dep" This reverts commit 3fcb2141d2be15f907269d13275c41971431385c. * Add zstd again * Take backup col path from col struct * Fix formatting * Implement backup restoring on backend * Normalize restored media file names * Refactor `extract_legacy_data()` A bit cumbersome due to borrowing rules. * Refactor * Make thinning calendar-based and gradual * Consider last kept backups of previous stages * Import full apkgs and colpkgs with backend * Expose new backup settings * Test `BackupThinner` and make it deterministic * Mark backup_path when closing optional * Delete leaky timer * Add progress updates for restoring media * Write restored collection to tempfile first * Do collection compression in the background thread This has us currently storing an uncompressed and compressed copy of the collection in memory (not ideal), but means the collection can be closed without waiting for compression to complete. On a large collection, this takes a close and reopen from about 0.55s to about 0.07s. The old backup code for comparison: about 0.35s for compression off, about 8.5s for zip compression. * Use multithreading in zstd compression On my system, this reduces the compression time of a large collection from about 0.55s to 0.08s. * Stream compressed collection data into zip file * Tweak backup explanation + Fix incorrect tab order for ignore accents option * Decouple restoring backup and full import In the first case, no profile is opened, unless the new collection succeeds to load. In the second case, either the old collection is reloaded or the new one is loaded. * Fix number gap in Progress message * Don't revert backup when media fails but report it * Tweak error flow * Remove native BackupLimits enum * Fix type annotation * Add thinning test for whole year * Satisfy linter * Await async backup to finish * Move restart disclaimer out of backup tab Should be visible regardless of the current tab. * Write restored collection in chunks * Refactor * Write media in chunks and refactor * Log error if removing file fails * join_backup_task -> await_backup_completion * Refactor backup.rs * Refactor backup meta and collection extraction * Fix wrong error being returned * Call sync_all() on new collection * Add ImportError * Store logger in Backend, instead of creating one on demand init_backend() accepts a Logger rather than a log file, to allow other callers to customize the logger if they wish. In the future we may want to explore using the tracing crate as an alternative; it's a bit more ergonomic, as a logger doesn't need to be passed around, and it plays more nicely with async code. * Sync file contents prior to rename; sync folder after rename. * Limit backup creation to once per 30 min * Use zstd::stream::copy_decode * Make importing abortable * Don't revert if backup media is aborted * Set throttle implicitly * Change force flag to minimum_backup_interval * Don't attempt to open folders on Windows * Join last backup thread before starting new one Also refactor. * Disable auto sync and backup when restoring again * Force backup on full download * Include the reason why a media file import failed, and the file path - Introduce a FileIoError that contains a string representation of the underlying I/O error, and an associated path. There are a few places in the code where we're currently manually including the filename in a custom error message, and this is a step towards a more consistent approach (but we may be better served with a more general approach in the future similar to Anyhow's .context()) - Move the error message into importing.ftl, as it's a bit neater when error messages live in the same file as the rest of the messages associated with some functionality. * Fix importing of media files * Minor wording tweaks * Save an allocation I18n strings with replacements are already strings, so we can skip the extra allocation. Not that it matters here at all. * Terminate import if file missing from archive If a third-party tool is creating invalid archives, the user should know about it. This should be rare, so I did not attempt to make it translatable. * Skip multithreaded compression on small collections Co-authored-by: Damien Elmes <gpg@ankiweb.net>
2022-03-07 06:11:31 +01:00
"authors": "Alex Crichton <alex@alexcrichton.com>",
"repository": "https://github.com/alexcrichton/jobserver-rs",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "An implementation of the GNU make jobserver for Rust"
},
{
"name": "js-sys",
2022-09-24 04:39:21 +02:00
"version": "0.3.60",
"authors": "The wasm-bindgen Developers",
"repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Bindings for all JS global objects and functions in all JS environments like Node.js and browsers, built on `#[wasm_bindgen]` using the `wasm-bindgen` crate."
},
{
"name": "lazy_static",
"version": "1.4.0",
"authors": "Marvin Löbel <loebel.marvin@gmail.com>",
"repository": "https://github.com/rust-lang-nursery/lazy-static.rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A macro for declaring lazily evaluated statics in Rust."
},
{
"name": "libc",
2022-09-24 04:39:21 +02:00
"version": "0.2.133",
"authors": "The Rust Project Developers",
"repository": "https://github.com/rust-lang/libc",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Raw FFI bindings to platform libraries like libc."
},
{
"name": "libsqlite3-sys",
2022-09-24 04:39:21 +02:00
"version": "0.25.1",
"authors": "The rusqlite developers",
"repository": "https://github.com/rusqlite/rusqlite",
"license": "MIT",
"license_file": null,
"description": "Native bindings to the libsqlite3 library"
},
{
"name": "lock_api",
2022-09-24 04:39:21 +02:00
"version": "0.4.9",
"authors": "Amanieu d'Antras <amanieu@gmail.com>",
"repository": "https://github.com/Amanieu/parking_lot",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Wrappers to create fully-featured Mutex and RwLock types. Compatible with no_std."
},
{
"name": "log",
2022-09-24 04:39:21 +02:00
"version": "0.4.17",
"authors": "The Rust Project Developers",
"repository": "https://github.com/rust-lang/log",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A lightweight logging facade for Rust"
},
{
"name": "mac",
"version": "0.1.1",
"authors": "Jonathan Reem <jonathan.reem@gmail.com>",
"repository": "https://github.com/reem/rust-mac.git",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A collection of great and ubiqutitous macros."
},
{
"name": "maplit",
"version": "1.0.2",
"authors": "bluss",
"repository": "https://github.com/bluss/maplit",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Collection “literal” macros for HashMap, HashSet, BTreeMap, and BTreeSet."
},
{
"name": "markup5ever",
2022-09-24 04:39:21 +02:00
"version": "0.11.0",
"authors": "The html5ever Project Developers",
"repository": "https://github.com/servo/html5ever",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Common code for xml5ever and html5ever"
},
{
"name": "matches",
2021-10-02 12:42:03 +02:00
"version": "0.1.9",
"authors": "Simon Sapin <simon.sapin@exyr.org>",
"repository": "https://github.com/SimonSapin/rust-std-candidates",
"license": "MIT",
"license_file": null,
"description": "A macro to evaluate, as a boolean, whether an expression matches a pattern."
},
{
"name": "memchr",
2022-09-24 04:39:21 +02:00
"version": "2.5.0",
"authors": "Andrew Gallant <jamslam@gmail.com>|bluss",
2021-10-02 12:42:03 +02:00
"repository": "https://github.com/BurntSushi/memchr",
2020-12-15 08:10:25 +01:00
"license": "MIT OR Unlicense",
"license_file": null,
"description": "Safe interface to memchr."
},
{
"name": "mime",
"version": "0.3.16",
"authors": "Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/hyperium/mime",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Strongly Typed Mimes"
},
{
"name": "mime_guess",
"version": "2.0.4",
"authors": "Austin Bonander <austin.bonander@gmail.com>",
"repository": "https://github.com/abonander/mime_guess",
"license": "MIT",
"license_file": null,
"description": "A simple crate for detection of a file's MIME type by its extension."
},
2021-10-02 12:42:03 +02:00
{
"name": "minimal-lexical",
2021-11-18 11:54:00 +01:00
"version": "0.2.1",
2021-10-02 12:42:03 +02:00
"authors": "Alex Huszagh <ahuszagh@gmail.com>",
"repository": "https://github.com/Alexhuszagh/minimal-lexical",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Fast float parsing conversion routines."
},
{
"name": "miniz_oxide",
2022-09-24 04:39:21 +02:00
"version": "0.5.4",
"authors": "Frommi <daniil.liferenko@gmail.com>|oyvindln <oyvindln@users.noreply.github.com>",
"repository": "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT OR Zlib",
"license_file": null,
"description": "DEFLATE compression and decompression library rewritten in Rust based on miniz"
},
{
"name": "mio",
2022-09-24 04:39:21 +02:00
"version": "0.8.4",
"authors": "Carl Lerche <me@carllerche.com>|Thomas de Zeeuw <thomasdezeeuw@gmail.com>|Tokio Contributors <team@tokio.rs>",
"repository": "https://github.com/tokio-rs/mio",
"license": "MIT",
"license_file": null,
"description": "Lightweight non-blocking IO"
},
{
"name": "multimap",
2021-03-27 05:47:16 +01:00
"version": "0.8.3",
"authors": "Håvar Nøvik <havar.novik@gmail.com>",
"repository": "https://github.com/havarnov/multimap",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A multimap implementation."
},
{
"name": "native-tls",
2022-09-24 04:39:21 +02:00
"version": "0.2.10",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/rust-native-tls",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A wrapper over a platform's native TLS implementation"
},
{
"name": "new_debug_unreachable",
"version": "1.0.4",
"authors": "Matt Brubeck <mbrubeck@limpet.net>|Jonathan Reem <jonathan.reem@gmail.com>",
"repository": "https://github.com/mbrubeck/rust-debug-unreachable",
"license": "MIT",
"license_file": null,
"description": "panic in debug, intrinsics::unreachable() in release (fork of debug_unreachable)"
},
{
"name": "nodrop",
"version": "0.1.14",
"authors": "bluss",
"repository": "https://github.com/bluss/arrayvec",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A wrapper type to inhibit drop (destructor). ***Deprecated: Use ManuallyDrop or MaybeUninit instead!***"
},
2021-06-25 07:35:25 +02:00
{
"name": "nom",
"version": "7.1.1",
2021-06-25 07:35:25 +02:00
"authors": "contact@geoffroycouprie.com",
"repository": "https://github.com/Geal/nom",
"license": "MIT",
"license_file": null,
"description": "A byte-oriented, zero-copy, parser combinators library"
},
{
"name": "num-format",
"version": "0.4.0",
"authors": "Brian Myers <brian.carl.myers@gmail.com>",
"repository": "https://github.com/bcmyers/num-format",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A Rust crate for producing string-representations of numbers, formatted according to international standards"
},
{
"name": "num-integer",
2022-09-24 04:39:21 +02:00
"version": "0.1.45",
"authors": "The Rust Project Developers",
"repository": "https://github.com/rust-num/num-integer",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Integer traits and functions"
},
{
"name": "num-traits",
2022-09-24 04:39:21 +02:00
"version": "0.2.15",
"authors": "The Rust Project Developers",
"repository": "https://github.com/rust-num/num-traits",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Numeric traits for generic mathematics"
},
{
"name": "num_cpus",
2022-01-15 05:59:43 +01:00
"version": "1.13.1",
"authors": "Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/seanmonstar/num_cpus",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Get the number of CPUs on a machine."
},
{
"name": "num_enum",
"version": "0.5.7",
"authors": "Daniel Wagner-Hall <dawagner@gmail.com>|Daniel Henry-Mantilla <daniel.henry.mantilla@gmail.com>|Vincent Esche <regexident@gmail.com>",
"repository": "https://github.com/illicitonion/num_enum",
2022-01-15 05:59:43 +01:00
"license": "Apache-2.0 OR BSD-3-Clause OR MIT",
"license_file": null,
"description": "Procedural macros to make inter-operation between primitives and enums easier."
},
{
"name": "num_enum_derive",
"version": "0.5.7",
"authors": "Daniel Wagner-Hall <dawagner@gmail.com>|Daniel Henry-Mantilla <daniel.henry.mantilla@gmail.com>|Vincent Esche <regexident@gmail.com>",
"repository": "https://github.com/illicitonion/num_enum",
2022-01-15 05:59:43 +01:00
"license": "Apache-2.0 OR BSD-3-Clause OR MIT",
"license_file": null,
"description": "Internal implementation details for ::num_enum (Procedural macros to make inter-operation between primitives and enums easier)"
},
{
"name": "num_threads",
2022-09-24 04:39:21 +02:00
"version": "0.1.6",
"authors": "Jacob Pratt <open-source@jhpratt.dev>",
"repository": "https://github.com/jhpratt/num_threads",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A minimal library that determines the number of running threads for the current process."
},
{
"name": "once_cell",
2022-09-24 04:39:21 +02:00
"version": "1.15.0",
"authors": "Aleksey Kladov <aleksey.kladov@gmail.com>",
"repository": "https://github.com/matklad/once_cell",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Single assignment cells and lazy values."
},
{
"name": "openssl",
2022-09-24 04:39:21 +02:00
"version": "0.10.41",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/rust-openssl",
"license": "Apache-2.0",
"license_file": null,
"description": "OpenSSL bindings"
},
2022-09-24 04:39:21 +02:00
{
"name": "openssl-macros",
"version": "0.1.0",
"authors": null,
"repository": null,
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Internal macros used by the openssl crate."
},
{
"name": "openssl-probe",
2022-01-15 05:59:43 +01:00
"version": "0.1.5",
"authors": "Alex Crichton <alex@alexcrichton.com>",
"repository": "https://github.com/alexcrichton/openssl-probe",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Tool for helping to find SSL certificate locations on the system for OpenSSL"
},
{
"name": "openssl-sys",
2022-09-24 04:39:21 +02:00
"version": "0.9.75",
"authors": "Alex Crichton <alex@alexcrichton.com>|Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/rust-openssl",
"license": "MIT",
"license_file": null,
"description": "FFI bindings to OpenSSL"
},
{
"name": "parking_lot",
2022-09-24 04:39:21 +02:00
"version": "0.12.1",
"authors": "Amanieu d'Antras <amanieu@gmail.com>",
"repository": "https://github.com/Amanieu/parking_lot",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "More compact and efficient implementations of the standard synchronization primitives."
},
{
"name": "parking_lot_core",
2022-09-24 04:39:21 +02:00
"version": "0.9.3",
"authors": "Amanieu d'Antras <amanieu@gmail.com>",
"repository": "https://github.com/Amanieu/parking_lot",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "An advanced API for creating custom synchronization primitives."
},
{
"name": "pct-str",
"version": "1.1.0",
"authors": "Timothée Haudebourg <author@haudebourg.net>",
"repository": "https://github.com/timothee-haudebourg/pct-str",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Percent-encoded strings for URL, URI, IRI, etc."
},
{
"name": "percent-encoding",
2022-09-24 04:39:21 +02:00
"version": "2.2.0",
"authors": "The rust-url developers",
"repository": "https://github.com/servo/rust-url/",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Percent encoding and decoding"
},
{
"name": "petgraph",
2022-09-24 04:39:21 +02:00
"version": "0.6.2",
"authors": "bluss|mitchmindtree",
"repository": "https://github.com/petgraph/petgraph",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Graph data structure library. Provides graph types and graph algorithms."
},
{
"name": "phf",
2022-09-24 04:39:21 +02:00
"version": "0.10.1",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/rust-phf",
"license": "MIT",
"license_file": null,
"description": "Runtime support for perfect hash function data structures"
},
2021-06-25 07:35:25 +02:00
{
"name": "phf",
2022-09-24 04:39:21 +02:00
"version": "0.11.1",
2021-06-25 07:35:25 +02:00
"authors": "Steven Fackler <sfackler@gmail.com>",
2022-09-24 04:39:21 +02:00
"repository": "https://github.com/rust-phf/rust-phf",
2021-06-25 07:35:25 +02:00
"license": "MIT",
"license_file": null,
"description": "Runtime support for perfect hash function data structures"
},
{
"name": "phf_codegen",
2022-09-24 04:39:21 +02:00
"version": "0.10.0",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/rust-phf",
"license": "MIT",
"license_file": null,
"description": "Codegen library for PHF types"
},
{
"name": "phf_generator",
2022-09-24 04:39:21 +02:00
"version": "0.10.0",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/rust-phf",
"license": "MIT",
"license_file": null,
"description": "PHF generation logic"
},
2021-06-25 07:35:25 +02:00
{
"name": "phf_generator",
2022-09-24 04:39:21 +02:00
"version": "0.11.1",
2021-06-25 07:35:25 +02:00
"authors": "Steven Fackler <sfackler@gmail.com>",
2022-09-24 04:39:21 +02:00
"repository": "https://github.com/rust-phf/rust-phf",
2021-06-25 07:35:25 +02:00
"license": "MIT",
"license_file": null,
"description": "PHF generation logic"
},
2021-07-23 11:39:40 +02:00
{
"name": "phf_macros",
2022-09-24 04:39:21 +02:00
"version": "0.11.1",
2021-07-23 11:39:40 +02:00
"authors": "Steven Fackler <sfackler@gmail.com>",
2022-09-24 04:39:21 +02:00
"repository": "https://github.com/rust-phf/rust-phf",
"license": "MIT",
"license_file": null,
"description": "Macros to generate types in the phf crate"
},
{
"name": "phf_shared",
2022-09-24 04:39:21 +02:00
"version": "0.10.0",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/rust-phf",
"license": "MIT",
"license_file": null,
"description": "Support code shared by PHF libraries"
},
2021-06-25 07:35:25 +02:00
{
"name": "phf_shared",
2022-09-24 04:39:21 +02:00
"version": "0.11.1",
2021-06-25 07:35:25 +02:00
"authors": "Steven Fackler <sfackler@gmail.com>",
2022-09-24 04:39:21 +02:00
"repository": "https://github.com/rust-phf/rust-phf",
2021-06-25 07:35:25 +02:00
"license": "MIT",
"license_file": null,
"description": "Support code shared by PHF libraries"
},
{
"name": "pin-project",
2022-09-24 04:39:21 +02:00
"version": "1.0.12",
2022-01-15 05:59:43 +01:00
"authors": null,
"repository": "https://github.com/taiki-e/pin-project",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A crate for safe and ergonomic pin-projection."
},
{
"name": "pin-project-internal",
2022-09-24 04:39:21 +02:00
"version": "1.0.12",
2022-01-15 05:59:43 +01:00
"authors": null,
"repository": "https://github.com/taiki-e/pin-project",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Implementation detail of the `pin-project` crate."
},
2020-11-24 07:57:37 +01:00
{
"name": "pin-project-lite",
2022-09-24 04:39:21 +02:00
"version": "0.2.9",
2022-01-15 05:59:43 +01:00
"authors": null,
2020-11-24 07:57:37 +01:00
"repository": "https://github.com/taiki-e/pin-project-lite",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A lightweight version of pin-project written with declarative macros."
},
{
"name": "pin-utils",
"version": "0.1.0",
"authors": "Josef Brandl <mail@josefbrandl.de>",
"repository": "https://github.com/rust-lang-nursery/pin-utils",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Utilities for pinning"
},
{
"name": "pkg-config",
2022-09-24 04:39:21 +02:00
"version": "0.3.25",
"authors": "Alex Crichton <alex@alexcrichton.com>",
"repository": "https://github.com/rust-lang/pkg-config-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A library to run the pkg-config system tool at build time in order to be used in Cargo build scripts."
},
{
"name": "ppv-lite86",
2022-01-15 05:59:43 +01:00
"version": "0.2.16",
"authors": "The CryptoCorrosion Contributors",
"repository": "https://github.com/cryptocorrosion/cryptocorrosion",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Implementation of the crypto-simd API for x86"
},
{
"name": "precomputed-hash",
"version": "0.1.1",
"authors": "Emilio Cobos Álvarez <emilio@crisal.io>",
"repository": "https://github.com/emilio/precomputed-hash",
"license": "MIT",
"license_file": null,
"description": "A library intending to be a base dependency to expose a precomputed hash"
},
{
"name": "proc-macro-crate",
2022-09-24 04:39:21 +02:00
"version": "1.2.1",
"authors": "Bastian Köcher <git@kchr.de>",
"repository": "https://github.com/bkchr/proc-macro-crate",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Replacement for crate (macro_rules keyword) in proc-macros"
},
{
"name": "proc-macro-hack",
"version": "0.5.19",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/proc-macro-hack",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Procedural macros in expression position"
},
{
"name": "proc-macro-nested",
2021-10-02 12:42:03 +02:00
"version": "0.1.7",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/proc-macro-hack",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Support for nested proc-macro-hack invocations"
},
{
"name": "proc-macro2",
2022-09-24 04:39:21 +02:00
"version": "1.0.43",
2021-11-18 11:54:00 +01:00
"authors": "David Tolnay <dtolnay@gmail.com>|Alex Crichton <alex@alexcrichton.com>",
"repository": "https://github.com/dtolnay/proc-macro2",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case."
},
{
"name": "prost",
2022-09-24 04:39:21 +02:00
"version": "0.11.0",
"authors": "Dan Burkert <dan@danburkert.com>|Lucio Franco <luciofranco14@gmail.com|Tokio Contributors <team@tokio.rs>",
2021-10-02 12:42:03 +02:00
"repository": "https://github.com/tokio-rs/prost",
"license": "Apache-2.0",
"license_file": null,
"description": "A Protocol Buffers implementation for the Rust Language."
},
{
"name": "prost-build",
2022-09-24 04:39:21 +02:00
"version": "0.11.1",
"authors": "Dan Burkert <dan@danburkert.com>|Lucio Franco <luciofranco14@gmail.com>|Tokio Contributors <team@tokio.rs>",
2021-10-02 12:42:03 +02:00
"repository": "https://github.com/tokio-rs/prost",
"license": "Apache-2.0",
"license_file": null,
"description": "A Protocol Buffers implementation for the Rust Language."
},
{
"name": "prost-derive",
2022-09-24 04:39:21 +02:00
"version": "0.11.0",
"authors": "Dan Burkert <dan@danburkert.com>|Lucio Franco <luciofranco14@gmail.com>|Tokio Contributors <team@tokio.rs>",
2021-10-02 12:42:03 +02:00
"repository": "https://github.com/tokio-rs/prost",
"license": "Apache-2.0",
"license_file": null,
"description": "A Protocol Buffers implementation for the Rust Language."
},
{
"name": "prost-types",
2022-09-24 04:39:21 +02:00
"version": "0.11.1",
"authors": "Dan Burkert <dan@danburkert.com>|Lucio Franco <luciofranco14@gmail.com|Tokio Contributors <team@tokio.rs>",
2021-10-02 12:42:03 +02:00
"repository": "https://github.com/tokio-rs/prost",
"license": "Apache-2.0",
"license_file": null,
"description": "A Protocol Buffers implementation for the Rust Language."
},
{
"name": "pulldown-cmark",
2022-09-24 04:39:21 +02:00
"version": "0.9.2",
"authors": "Raph Levien <raph.levien@gmail.com>|Marcus Klaas de Vries <mail@marcusklaas.nl>",
"repository": "https://github.com/raphlinus/pulldown-cmark",
"license": "MIT",
"license_file": null,
"description": "A pull parser for CommonMark"
},
{
"name": "quote",
2022-09-24 04:39:21 +02:00
"version": "1.0.21",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/quote",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Quasi-quoting macro quote!(...)"
},
2021-02-03 11:29:48 +01:00
{
"name": "rand",
"version": "0.8.5",
2021-02-03 11:29:48 +01:00
"authors": "The Rand Project Developers|The Rust Project Developers",
"repository": "https://github.com/rust-random/rand",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Random number generators and other randomness functionality."
},
{
"name": "rand_chacha",
2021-06-16 08:10:57 +02:00
"version": "0.3.1",
2021-02-03 11:29:48 +01:00
"authors": "The Rand Project Developers|The Rust Project Developers|The CryptoCorrosion Contributors",
"repository": "https://github.com/rust-random/rand",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "ChaCha random number generator"
},
{
"name": "rand_core",
2022-09-24 04:39:21 +02:00
"version": "0.6.4",
2021-02-03 11:29:48 +01:00
"authors": "The Rand Project Developers|The Rust Project Developers",
"repository": "https://github.com/rust-random/rand",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Core random number generator traits and tools for implementation."
},
{
"name": "redox_syscall",
2022-09-24 04:39:21 +02:00
"version": "0.2.16",
2021-02-03 11:29:48 +01:00
"authors": "Jeremy Soller <jackpot51@gmail.com>",
"repository": "https://gitlab.redox-os.org/redox-os/syscall",
"license": "MIT",
"license_file": null,
"description": "A Rust library to access raw Redox system calls"
},
{
"name": "redox_users",
2022-09-24 04:39:21 +02:00
"version": "0.4.3",
"authors": "Jose Narvaez <goyox86@gmail.com>|Wesley Hershberger <mggmugginsmc@gmail.com>",
"repository": "https://gitlab.redox-os.org/redox-os/users",
"license": "MIT",
"license_file": null,
"description": "A Rust library to access Redox users and groups functionality"
},
{
"name": "regex",
2022-09-24 04:39:21 +02:00
"version": "1.6.0",
"authors": "The Rust Project Developers",
"repository": "https://github.com/rust-lang/regex",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear time matching on all inputs."
},
Plaintext import/export (#1850) * Add crate csv * Add start of csv importing on backend * Add Menomosyne serializer * Add csv and json importing on backend * Add plaintext importing on frontend * Add csv metadata extraction on backend * Add csv importing with GUI * Fix missing dfa file in build Added compile_data_attr, then re-ran cargo/update.py. * Don't use doubly buffered reader in csv * Escape HTML entities if CSV is not HTML Also use name 'is_html' consistently. * Use decimal number as foreign ease (like '2.5') * ForeignCard.ivl → ForeignCard.interval * Only allow fixed set of CSV delimiters * Map timestamp of ForeignCard to native due time * Don't trim CSV records * Document use of empty strings for defaults * Avoid creating CardGenContexts for every note This requires CardGenContext to be generic, so it works both with an owned and borrowed notetype. * Show all accepted file types in import file picker * Add import_json_file() * factor → ease_factor * delimter_from_value → delimiter_from_value * Map columns to fields, not the other way around * Fallback to current config for csv metadata * Add start of new import csv screen * Temporary fix for compilation issue on Linux/Mac * Disable jest bazel action for import-csv Jest fails with an error code if no tests are available, but this would not be noticable on Windows as Jest is not run there. * Fix field mapping issue * Revert "Temporary fix for compilation issue on Linux/Mac" This reverts commit 21f8a261408cdae49ec031aa21a1b659c4f66d82. * Add HtmlSwitch and move Switch to components * Fix spacing and make selectors consistent * Fix shortcut tooltip * Place import button at the top with path * Fix meta column indices * Remove NotetypeForString * Fix queue and type of foreign cards * Support different dupe resolution strategies * Allow dupe resolution selection when importing CSV * Test import of unnormalized text Close #1863. * Fix logging of foreign notes * Implement CSV exports * Use db_scalar() in notes_table_len() * Rework CSV metadata - Notetypes and decks are either defined by a global id or by a column. - If a notetype id is provided, its field map must also be specified. - If a notetype column is provided, fields are now mapped by index instead of name at import time. So the first non-meta column is used for the first field of every note, regardless of notetype. This makes importing easier and should improve compatiblity with files without a notetype column. - Ensure first field can be mapped to a column. - Meta columns must be defined as `#[meta name]:[column index]` instead of in the `#columns` tag. - Column labels contain the raw names defined by the file and must be prettified by the frontend. * Adjust frontend to new backend column mapping * Add force flags for is_html and delimiter * Detect if CSV is HTML by field content * Update dupe resolution labels * Simplify selectors * Fix coalescence of oneofs in TS * Disable meta columns from selection Plus a lot of refactoring. * Make import button stick to the bottom * Write delimiter and html flag into csv * Refetch field map after notetype change * Fix log labels for csv import * Log notes whose deck/notetype was missing * Fix hiding of empty log queues * Implement adding tags to all notes of a csv * Fix dupe resolution not being set in log * Implement adding tags to updated notes of a csv * Check first note field is not empty * Temporary fix for build on Linux/Mac * Fix inverted html check (dae) * Remove unused ftl string * Delimiter → Separator * Remove commented-out line * Don't accept .json files * Tweak tag ftl strings * Remove redundant blur call * Strip sound and add spaces in csv export * Export HTML by default * Fix unset deck in Mnemosyne import Also accept both numbers and strings for notetypes and decks in JSON. * Make DupeResolution::Update the default * Fix missing dot in extension * Make column indices 1-based * Remove StickContainer from TagEditor Fixes line breaking, border and z index on ImportCsvPage. * Assign different key combos to tag editors * Log all updated duplicates Add a log field for the true number of found notes. * Show identical notes as skipped * Split tag-editor into separate ts module (dae) * Add progress for CSV export * Add progress for text import * Tidy-ups after tag-editor split (dae) - import-csv no longer depends on editor - remove some commented lines
2022-06-01 12:26:16 +02:00
{
"name": "regex-automata",
"version": "0.1.10",
"authors": "Andrew Gallant <jamslam@gmail.com>",
"repository": "https://github.com/BurntSushi/regex-automata",
"license": "MIT OR Unlicense",
"license_file": null,
"description": "Automata construction and matching using regular expressions."
},
{
"name": "regex-syntax",
2022-09-24 04:39:21 +02:00
"version": "0.6.27",
"authors": "The Rust Project Developers",
"repository": "https://github.com/rust-lang/regex",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A regular expression parser."
},
{
"name": "remove_dir_all",
"version": "0.5.3",
"authors": "Aaronepower <theaaronepower@gmail.com>",
"repository": "https://github.com/XAMPPRocky/remove_dir_all.git",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A safe, reliable implementation of remove_dir_all for Windows"
},
{
"name": "reqwest",
"version": "0.11.3",
"authors": "Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/seanmonstar/reqwest",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "higher level HTTP client library"
},
{
"name": "ring",
2021-02-03 11:29:48 +01:00
"version": "0.16.20",
"authors": "Brian Smith <brian@briansmith.org>",
"repository": "https://github.com/briansmith/ring",
"license": null,
"license_file": "LICENSE",
"description": "Safe, fast, small crypto using Rust."
},
{
"name": "rusqlite",
2022-09-24 04:39:21 +02:00
"version": "0.28.0",
"authors": "The rusqlite developers",
"repository": "https://github.com/rusqlite/rusqlite",
"license": "MIT",
"license_file": null,
"description": "Ergonomic wrapper for SQLite"
},
2021-02-03 11:29:48 +01:00
{
"name": "rustc-hash",
"version": "1.1.0",
"authors": "The Rust Project Developers",
"repository": "https://github.com/rust-lang-nursery/rustc-hash",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "speed, non-cryptographic hash used in rustc"
},
{
"name": "rustls",
"version": "0.19.1",
"authors": "Joseph Birr-Pixton <jpixton@gmail.com>",
"repository": "https://github.com/ctz/rustls",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR ISC OR MIT",
"license_file": null,
"description": "Rustls is a modern TLS library written in Rust."
},
2021-06-18 10:15:41 +02:00
{
"name": "rustls-native-certs",
"version": "0.5.0",
"authors": "Joseph Birr-Pixton <jpixton@gmail.com>",
"repository": "https://github.com/ctz/rustls-native-certs",
"license": "Apache-2.0 OR ISC OR MIT",
"license_file": null,
"description": "rustls-native-certs allows rustls to use the platform native certificate store"
},
2021-10-02 12:42:03 +02:00
{
"name": "rustversion",
2022-09-24 04:39:21 +02:00
"version": "1.0.9",
2021-10-02 12:42:03 +02:00
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/rustversion",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Conditional compilation according to rustc compiler version"
},
{
"name": "ryu",
2022-09-24 04:39:21 +02:00
"version": "1.0.11",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/ryu",
"license": "Apache-2.0 OR BSL-1.0",
"license_file": null,
"description": "Fast floating point to string conversion"
},
{
"name": "schannel",
2022-09-24 04:39:21 +02:00
"version": "0.1.20",
"authors": "Steven Fackler <sfackler@gmail.com>|Steffen Butzer <steffen.butzer@outlook.com>",
"repository": "https://github.com/steffengy/schannel-rs",
"license": "MIT",
"license_file": null,
"description": "Schannel bindings for rust, allowing SSL/TLS (e.g. https) without openssl"
},
{
"name": "scopeguard",
"version": "1.1.0",
"authors": "bluss",
"repository": "https://github.com/bluss/scopeguard",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A RAII scope guard that will run a given closure when it goes out of scope, even if the code between panics (assuming unwinding panic). Defines the macros `defer!`, `defer_on_unwind!`, `defer_on_success!` as shorthands for guards with one of the implemented strategies."
},
{
"name": "sct",
"version": "0.6.1",
"authors": "Joseph Birr-Pixton <jpixton@gmail.com>",
"repository": "https://github.com/ctz/sct.rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR ISC OR MIT",
"license_file": null,
"description": "Certificate transparency SCT verification library"
},
{
"name": "security-framework",
2022-09-24 04:39:21 +02:00
"version": "2.7.0",
"authors": "Steven Fackler <sfackler@gmail.com>|Kornel <kornel@geekhood.net>",
"repository": "https://github.com/kornelski/rust-security-framework",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Security.framework bindings for macOS and iOS"
},
{
"name": "security-framework-sys",
"version": "2.6.1",
"authors": "Steven Fackler <sfackler@gmail.com>|Kornel <kornel@geekhood.net>",
"repository": "https://github.com/kornelski/rust-security-framework",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Apple `Security.framework` low-level FFI bindings"
},
{
"name": "self_cell",
2021-12-03 11:04:47 +01:00
"version": "0.10.2",
"authors": "Lukas Bergdoll <lukas.bergdoll@gmail.com>",
"repository": "https://github.com/Voultapher/self_cell",
"license": "Apache-2.0",
"license_file": null,
"description": "Safe-to-use proc-macro-free self-referential structs in stable Rust."
},
{
"name": "serde",
2022-09-24 04:39:21 +02:00
"version": "1.0.145",
"authors": "Erick Tryzelaar <erick.tryzelaar@gmail.com>|David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/serde-rs/serde",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A generic serialization/deserialization framework"
},
{
"name": "serde-aux",
2022-09-24 04:39:21 +02:00
"version": "4.0.0",
"authors": "Victor Polevoy <maintainer@vpolevoy.com>",
"repository": "https://github.com/vityafx/serde-aux",
"license": "MIT",
"license_file": null,
"description": "A serde crate's auxiliary library"
},
{
"name": "serde_derive",
2022-09-24 04:39:21 +02:00
"version": "1.0.145",
"authors": "Erick Tryzelaar <erick.tryzelaar@gmail.com>|David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/serde-rs/serde",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Macros 1.1 implementation of #[derive(Serialize, Deserialize)]"
},
{
"name": "serde_json",
2022-09-24 04:39:21 +02:00
"version": "1.0.85",
"authors": "Erick Tryzelaar <erick.tryzelaar@gmail.com>|David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/serde-rs/json",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A JSON serialization file format"
},
{
"name": "serde_repr",
2022-09-24 04:39:21 +02:00
"version": "0.1.9",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/serde-repr",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Derive Serialize and Deserialize that delegates to the underlying repr of a C-like enum."
},
{
"name": "serde_tuple",
"version": "0.5.0",
"authors": "Jacob Brown <kardeiz@gmail.com>",
"repository": "https://github.com/kardeiz/serde_tuple",
"license": "MIT",
"license_file": null,
"description": "De/serialize structs with named fields as array of values"
},
{
"name": "serde_tuple_macros",
"version": "0.5.0",
"authors": "Jacob Brown <kardeiz@gmail.com>",
"repository": "https://github.com/kardeiz/serde_tuple",
"license": "MIT",
"license_file": null,
"description": "De/serialize structs with named fields as array of values"
},
{
"name": "serde_urlencoded",
"version": "0.7.1",
"authors": "Anthony Ramine <n.oxyde@gmail.com>",
"repository": "https://github.com/nox/serde_urlencoded",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "`x-www-form-urlencoded` meets Serde"
},
{
"name": "sha1",
"version": "0.6.1",
"authors": "Armin Ronacher <armin.ronacher@active-4.com>",
"repository": "https://github.com/mitsuhiko/sha1-smol",
"license": "BSD-3-Clause",
"license_file": null,
"description": "Minimal dependency free implementation of SHA1 for Rust."
},
{
"name": "sha1_smol",
"version": "1.0.0",
"authors": "Armin Ronacher <armin.ronacher@active-4.com>",
"repository": "https://github.com/mitsuhiko/sha1-smol",
"license": "BSD-3-Clause",
"license_file": null,
"description": "Minimal dependency free implementation of SHA1 for Rust."
},
{
"name": "signal-hook-registry",
"version": "1.4.0",
"authors": "Michal 'vorner' Vaner <vorner@vorner.cz>|Masaki Hara <ackie.h.gmai@gmail.com>",
"repository": "https://github.com/vorner/signal-hook",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Backend crate for signal-hook"
},
{
"name": "siphasher",
"version": "0.3.10",
"authors": "Frank Denis <github@pureftpd.org>",
"repository": "https://github.com/jedisct1/rust-siphash",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "SipHash-2-4, SipHash-1-3 and 128-bit variants in pure Rust"
},
{
"name": "slab",
2022-09-24 04:39:21 +02:00
"version": "0.4.7",
"authors": "Carl Lerche <me@carllerche.com>",
"repository": "https://github.com/tokio-rs/slab",
"license": "MIT",
"license_file": null,
"description": "Pre-allocated storage for a uniform data type"
},
{
"name": "slog",
"version": "2.7.0",
"authors": "Dawid Ciężarkiewicz <dpc@dpc.pw>",
"repository": "https://github.com/slog-rs/slog",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT OR MPL-2.0",
"license_file": null,
"description": "Structured, extensible, composable logging for Rust"
},
{
"name": "slog-async",
2021-10-02 12:42:03 +02:00
"version": "2.7.0",
"authors": "Dawid Ciężarkiewicz <dpc@dpc.pw>",
"repository": "https://github.com/slog-rs/async",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT OR MPL-2.0",
"license_file": null,
"description": "Asynchronous drain for slog-rs"
},
{
"name": "slog-envlogger",
"version": "2.2.0",
"authors": "The Rust Project Developers|Dawid Ciężarkiewicz <dpc@dpc.pw>",
"repository": "https://github.com/slog-rs/envlogger",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Port of de facto standard logger implementation for Rust, to `slog-rs` framework."
},
{
"name": "slog-scope",
2021-02-03 11:29:48 +01:00
"version": "4.4.0",
"authors": "Dawid Ciężarkiewicz <dpc@dpc.pw>",
"repository": "https://github.com/slog-rs/scope",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT OR MPL-2.0",
"license_file": null,
"description": "Logging scopes for slog-rs"
},
{
"name": "slog-stdlog",
2022-09-24 04:39:21 +02:00
"version": "4.1.1",
"authors": "Dawid Ciężarkiewicz <dpc@dpc.pw>",
"repository": "https://github.com/slog-rs/stdlog",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT OR MPL-2.0",
"license_file": null,
"description": "`log` crate adapter for slog-rs"
},
{
"name": "slog-term",
"version": "2.9.0",
"authors": "Dawid Ciężarkiewicz <dpc@dpc.pw>",
"repository": "https://github.com/slog-rs/term",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT OR MPL-2.0",
"license_file": null,
"description": "Unix terminal drain and formatter for slog-rs"
},
{
"name": "smallvec",
2022-09-24 04:39:21 +02:00
"version": "1.9.0",
"authors": "The Servo Project Developers",
"repository": "https://github.com/servo/rust-smallvec",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "'Small vector' optimization: store up to a small number of items on the stack"
},
V3 parent limits (#1638) * avoid repinning Rust deps by default * add id_tree dependency * Respect intermediate child limits in v3 * Test new behaviour of v3 counts * Rework v3 queue building to respect parent limits * Add missing did field to SQL query * Fix `LimitTreeMap::is_exhausted()` * Rework tree building logic https://github.com/ankitects/anki/pull/1638#discussion_r798328734 * Add timer for build_queues() * `is_exhausted()` -> `limit_reached()` * Move context and limits into `QueueBuilder` This allows for moving more logic into QueueBuilder, so less passing around of arguments. Unfortunately, some tests will require additional work to set up. * Fix stop condition in new_cards_by_position * Fix order gather order of new cards by deck * Add scheduler/queue/builder/burying.rs * Fix bad tree due to unsorted child decks * Fix comment * Fix `cap_new_to_review_rec()` * Add test for new card gathering * Always sort `child_decks()` * Fix deck removal in `cap_new_to_review_rec()` * Fix sibling ordering in new card gathering * Remove limits for deck total count with children * Add random gather order * Remove bad sibling order handling All routines ensure ascending order now. Also do some other minor refactoring. * Remove queue truncating All routines stop now as soon as the root limit is reached. * Move deck fetching into `QueueBuilder::new()` * Rework new card gather and sort options https://github.com/ankitects/anki/pull/1638#issuecomment-1032173013 * Disable new sort order choices ... depending on set gather order. * Use enum instead of numbers * Ensure valid sort order setting * Update new gather and sort order tooltips * Warn about random insertion order with v3 * Revert "Add timer for build_queues()" This reverts commit c9f5fc6ebe87953c17a0c842990b009b5596c69c. * Update rslib/src/storage/card/mod.rs (dae) * minor wording tweaks to the tooltips (dae) + move legacy strings to bottom + consistent capitalization (our leech action still needs fixing, but that will require introducing a new 'suspend card' string as the existing one is used elsewhere as well)
2022-02-10 00:55:43 +01:00
{
"name": "snowflake",
"version": "1.3.0",
"authors": "Steven Allen <steven@stebalien.com>",
"repository": "https://github.com/Stebalien/snowflake",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A module for generating guaranteed process unique IDs."
},
{
"name": "socket2",
2022-09-24 04:39:21 +02:00
"version": "0.4.7",
"authors": "Alex Crichton <alex@alexcrichton.com>|Thomas de Zeeuw <thomasdezeeuw@gmail.com>",
"repository": "https://github.com/rust-lang/socket2",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Utilities for handling networking sockets with a maximal amount of configuration possible intended."
},
{
"name": "spin",
"version": "0.5.2",
"authors": "Mathijs van de Nes <git@mathijs.vd-nes.nl>|John Ericson <git@JohnEricson.me>",
"repository": "https://github.com/mvdnes/spin-rs.git",
"license": "MIT",
"license_file": null,
"description": "Synchronization primitives based on spinning. They may contain data, are usable without `std`, and static initializers are available."
},
{
"name": "string_cache",
2022-09-24 04:39:21 +02:00
"version": "0.8.4",
"authors": "The Servo Project Developers",
"repository": "https://github.com/servo/string-cache",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A string interning library for Rust, developed as part of the Servo project."
},
{
"name": "string_cache_codegen",
2022-09-24 04:39:21 +02:00
"version": "0.5.2",
"authors": "The Servo Project Developers",
"repository": "https://github.com/servo/string-cache",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A codegen library for string-cache, developed as part of the Servo project."
},
2021-03-07 10:08:03 +01:00
{
"name": "strum",
2022-09-24 04:39:21 +02:00
"version": "0.24.1",
2021-03-07 10:08:03 +01:00
"authors": "Peter Glotfelty <peter.glotfelty@microsoft.com>",
"repository": "https://github.com/Peternator7/strum",
"license": "MIT",
"license_file": null,
"description": "Helpful macros for working with enums and strings"
},
{
"name": "strum_macros",
2022-09-24 04:39:21 +02:00
"version": "0.24.3",
2021-03-07 10:08:03 +01:00
"authors": "Peter Glotfelty <peter.glotfelty@microsoft.com>",
"repository": "https://github.com/Peternator7/strum",
"license": "MIT",
"license_file": null,
"description": "Helpful macros for working with enums and strings"
},
2022-01-15 05:59:43 +01:00
{
"name": "subtle",
"version": "2.4.1",
"authors": "Isis Lovecruft <isis@patternsinthevoid.net>|Henry de Valence <hdevalence@hdevalence.ca>",
"repository": "https://github.com/dalek-cryptography/subtle",
"license": "BSD-3-Clause",
"license_file": null,
"description": "Pure-Rust traits and utilities for constant-time cryptographic implementations."
},
{
"name": "syn",
2022-09-24 04:39:21 +02:00
"version": "1.0.100",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/syn",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Parser for Rust source code"
},
{
"name": "take_mut",
"version": "0.2.2",
"authors": "Sgeo <sgeoster@gmail.com>",
"repository": "https://github.com/Sgeo/take_mut",
"license": "MIT",
"license_file": null,
"description": "Take a T from a &mut T temporarily"
},
{
"name": "tempfile",
2022-01-15 05:59:43 +01:00
"version": "3.3.0",
"authors": "Steven Allen <steven@stebalien.com>|The Rust Project Developers|Ashley Mannix <ashleymannix@live.com.au>|Jason White <jasonaw0@gmail.com>",
"repository": "https://github.com/Stebalien/tempfile",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A library for managing temporary files and directories."
},
{
"name": "tendril",
2022-09-24 04:39:21 +02:00
"version": "0.4.3",
"authors": "Keegan McAllister <mcallister.keegan@gmail.com>|Simon Sapin <simon.sapin@exyr.org>|Chris Morgan <me@chrismorgan.info>",
"repository": "https://github.com/servo/tendril",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Compact buffer/string type for zero-copy parsing"
},
{
"name": "term",
2021-10-02 12:42:03 +02:00
"version": "0.7.0",
"authors": "The Rust Project Developers|Steven Allen",
"repository": "https://github.com/Stebalien/term",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A terminal formatting library"
},
{
"name": "termcolor",
"version": "1.1.3",
"authors": "Andrew Gallant <jamslam@gmail.com>",
"repository": "https://github.com/BurntSushi/termcolor",
2020-12-15 08:10:25 +01:00
"license": "MIT OR Unlicense",
"license_file": null,
"description": "A simple cross platform library for writing colored text to a terminal."
},
{
"name": "thiserror",
2022-09-24 04:39:21 +02:00
"version": "1.0.35",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/thiserror",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "derive(Error)"
},
{
"name": "thiserror-impl",
2022-09-24 04:39:21 +02:00
"version": "1.0.35",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/thiserror",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Implementation detail of the `thiserror` crate"
},
{
"name": "thread_local",
"version": "1.1.4",
"authors": "Amanieu d'Antras <amanieu@gmail.com>",
"repository": "https://github.com/Amanieu/thread_local-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Per-object thread-local storage"
},
{
"name": "time",
2021-06-25 07:35:25 +02:00
"version": "0.1.44",
"authors": "The Rust Project Developers",
"repository": "https://github.com/time-rs/time",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Utilities for working with time-related functions in Rust."
},
{
"name": "time",
2022-09-24 04:39:21 +02:00
"version": "0.3.14",
"authors": "Jacob Pratt <open-source@jhpratt.dev>|Time contributors",
"repository": "https://github.com/time-rs/time",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Date and time library. Fully interoperable with the standard library. Mostly compatible with #![no_std]."
},
{
"name": "time-macros",
2022-09-24 04:39:21 +02:00
"version": "0.2.4",
"authors": "Jacob Pratt <open-source@jhpratt.dev>|Time contributors",
"repository": "https://github.com/time-rs/time",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Procedural macros for the time crate."
},
{
"name": "tinystr",
"version": "0.3.4",
"authors": "Raph Levien <raph.levien@gmail.com>|Zibi Braniecki <zibi@braniecki.net>",
"repository": "https://github.com/zbraniecki/tinystr",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A small ASCII-only bounded length string representation."
},
{
"name": "tinyvec",
2022-09-24 04:39:21 +02:00
"version": "1.6.0",
"authors": "Lokathor <zefria@gmail.com>",
"repository": "https://github.com/Lokathor/tinyvec",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT OR Zlib",
"license_file": null,
"description": "`tinyvec` provides 100% safe vec-like data structures."
},
{
"name": "tinyvec_macros",
"version": "0.1.0",
"authors": "Soveu <marx.tomasz@gmail.com>",
"repository": "https://github.com/Soveu/tinyvec_macros",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT OR Zlib",
"license_file": null,
"description": "Some macros for tiny containers"
},
{
"name": "tokio",
2022-09-24 04:39:21 +02:00
"version": "1.21.1",
"authors": "Tokio Contributors <team@tokio.rs>",
"repository": "https://github.com/tokio-rs/tokio",
"license": "MIT",
"license_file": null,
"description": "An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications."
},
{
"name": "tokio-io-timeout",
"version": "1.1.1",
"authors": "Steven Fackler <sfackler@gmail.com>",
"repository": "https://github.com/sfackler/tokio-io-timeout",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Tokio wrappers which apply timeouts to IO operations"
},
2021-07-23 11:39:40 +02:00
{
"name": "tokio-macros",
2022-09-24 04:39:21 +02:00
"version": "1.8.0",
2021-07-23 11:39:40 +02:00
"authors": "Tokio Contributors <team@tokio.rs>",
"repository": "https://github.com/tokio-rs/tokio",
"license": "MIT",
"license_file": null,
"description": "Tokio's proc macros."
},
{
"name": "tokio-native-tls",
"version": "0.3.0",
"authors": "Tokio Contributors <team@tokio.rs>",
"repository": "https://github.com/tokio-rs/tls",
"license": "MIT",
"license_file": null,
"description": "An implementation of TLS/SSL streams for Tokio using native-tls giving an implementation of TLS for nonblocking I/O streams."
},
{
"name": "tokio-rustls",
"version": "0.22.0",
"authors": "quininer kel <quininer@live.com>",
"repository": "https://github.com/tokio-rs/tls",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Asynchronous TLS/SSL streams for Tokio using Rustls."
},
{
"name": "tokio-socks",
"version": "0.5.1",
"authors": "Yilin Chen <sticnarf@gmail.com>",
"repository": "https://github.com/sticnarf/tokio-socks",
"license": "MIT",
"license_file": null,
"description": "Asynchronous SOCKS proxy support for Rust."
},
{
"name": "tokio-util",
2022-09-24 04:39:21 +02:00
"version": "0.7.4",
"authors": "Tokio Contributors <team@tokio.rs>",
"repository": "https://github.com/tokio-rs/tokio",
"license": "MIT",
"license_file": null,
"description": "Additional utilities for working with Tokio."
},
{
"name": "toml",
2022-09-24 04:39:21 +02:00
"version": "0.5.9",
"authors": "Alex Crichton <alex@alexcrichton.com>",
"repository": "https://github.com/alexcrichton/toml-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A native Rust encoder and decoder of TOML-formatted files and streams. Provides implementations of the standard Serialize/Deserialize traits for TOML data to facilitate deserializing and serializing Rust structures."
},
{
"name": "tower-service",
2022-09-24 04:39:21 +02:00
"version": "0.3.2",
"authors": "Tower Maintainers <team@tower-rs.com>",
"repository": "https://github.com/tower-rs/tower",
"license": "MIT",
"license_file": null,
"description": "Trait representing an asynchronous, request / response based, client or server."
},
{
"name": "tracing",
2022-09-24 04:39:21 +02:00
"version": "0.1.36",
"authors": "Eliza Weisman <eliza@buoyant.io>|Tokio Contributors <team@tokio.rs>",
"repository": "https://github.com/tokio-rs/tracing",
"license": "MIT",
"license_file": null,
"description": "Application-level tracing for Rust."
},
{
"name": "tracing-core",
2022-09-24 04:39:21 +02:00
"version": "0.1.29",
"authors": "Tokio Contributors <team@tokio.rs>",
"repository": "https://github.com/tokio-rs/tracing",
"license": "MIT",
"license_file": null,
"description": "Core primitives for application-level tracing."
},
{
"name": "try-lock",
"version": "0.2.3",
"authors": "Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/seanmonstar/try-lock",
"license": "MIT",
"license_file": null,
"description": "A lightweight atomic lock."
},
{
"name": "type-map",
2021-02-03 11:29:48 +01:00
"version": "0.4.0",
"authors": "Jacob Brown <kardeiz@gmail.com>",
"repository": "https://github.com/kardeiz/type-map",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Provides a typemap container with FxHashMap"
},
{
"name": "typenum",
2022-01-15 05:59:43 +01:00
"version": "1.15.0",
"authors": "Paho Lurie-Gregg <paho@paholg.com>|Andre Bogus <bogusandre@gmail.com>",
"repository": "https://github.com/paholg/typenum",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
2021-03-27 05:47:16 +01:00
"description": "Typenum is a Rust library for type-level numbers evaluated at compile time. It currently supports bits, unsigned integers, and signed integers. It also provides a type-level array of type-level numbers, but its implementation is incomplete."
},
{
"name": "unic-char-property",
"version": "0.9.0",
"authors": "The UNIC Project Developers",
"repository": "https://github.com/open-i18n/rust-unic/",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "UNIC — Unicode Character Tools — Character Property taxonomy, contracts and build macros"
},
{
"name": "unic-char-range",
"version": "0.9.0",
"authors": "The UNIC Project Developers",
"repository": "https://github.com/open-i18n/rust-unic/",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "UNIC — Unicode Character Tools — Character Range and Iteration"
},
{
"name": "unic-common",
"version": "0.9.0",
"authors": "The UNIC Project Developers",
"repository": "https://github.com/open-i18n/rust-unic/",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "UNIC — Common Utilities"
},
{
"name": "unic-langid",
"version": "0.9.0",
"authors": "Zibi Braniecki <gandalf@mozilla.com>",
"repository": "https://github.com/zbraniecki/unic-locale",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "API for managing Unicode Language Identifiers"
},
{
"name": "unic-langid-impl",
"version": "0.9.0",
"authors": "Zibi Braniecki <gandalf@mozilla.com>",
"repository": "https://github.com/zbraniecki/unic-locale",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "API for managing Unicode Language Identifiers"
},
{
"name": "unic-langid-macros",
"version": "0.9.0",
"authors": "Manish Goregaokar <manishsmail@gmail.com>|Zibi Braniecki <gandalf@mozilla.com>",
"repository": "https://github.com/zbraniecki/unic-locale",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "API for managing Unicode Language Identifiers"
},
{
"name": "unic-langid-macros-impl",
"version": "0.9.0",
"authors": "Manish Goregaokar <manishsmail@gmail.com>|Zibi Braniecki <gandalf@mozilla.com>",
"repository": "https://github.com/zbraniecki/unic-locale",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "API for managing Unicode Language Identifiers"
},
{
"name": "unic-ucd-category",
"version": "0.9.0",
"authors": "The UNIC Project Developers",
"repository": "https://github.com/open-i18n/rust-unic/",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "UNIC — Unicode Character Database — General Category"
},
{
"name": "unic-ucd-version",
"version": "0.9.0",
"authors": "The UNIC Project Developers",
"repository": "https://github.com/open-i18n/rust-unic/",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "UNIC — Unicode Character Database — Version"
},
{
"name": "unicase",
"version": "2.6.0",
"authors": "Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/seanmonstar/unicase",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A case-insensitive wrapper around strings."
},
{
"name": "unicode-bidi",
2022-09-24 04:39:21 +02:00
"version": "0.3.8",
"authors": "The Servo Project Developers",
"repository": "https://github.com/servo/unicode-bidi",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Implementation of the Unicode Bidirectional Algorithm"
},
{
2022-09-24 04:39:21 +02:00
"name": "unicode-ident",
"version": "1.0.4",
"authors": "David Tolnay <dtolnay@gmail.com>",
"repository": "https://github.com/dtolnay/unicode-ident",
"license": "(MIT OR Apache-2.0) AND Unicode-DFS-2016",
"license_file": null,
2022-09-24 04:39:21 +02:00
"description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31"
},
{
2022-09-24 04:39:21 +02:00
"name": "unicode-normalization",
"version": "0.1.22",
"authors": "kwantam <kwantam@gmail.com>|Manish Goregaokar <manishsmail@gmail.com>",
2022-09-24 04:39:21 +02:00
"repository": "https://github.com/unicode-rs/unicode-normalization",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
2022-09-24 04:39:21 +02:00
"description": "This crate provides functions for normalization of Unicode strings, including Canonical and Compatible Decomposition and Recomposition, as described in Unicode Standard Annex #15."
},
{
"name": "unicode-width",
2022-09-24 04:39:21 +02:00
"version": "0.1.10",
"authors": "kwantam <kwantam@gmail.com>|Manish Goregaokar <manishsmail@gmail.com>",
"repository": "https://github.com/unicode-rs/unicode-width",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Determine displayed width of `char` and `str` types according to Unicode Standard Annex #11 rules."
},
{
"name": "untrusted",
"version": "0.7.1",
"authors": "Brian Smith <brian@briansmith.org>",
"repository": "https://github.com/briansmith/untrusted",
"license": "ISC",
"license_file": null,
"description": "Safe, fast, zero-panic, zero-crashing, zero-allocation parsing of untrusted inputs in Rust."
},
{
"name": "url",
2022-09-24 04:39:21 +02:00
"version": "2.3.1",
"authors": "The rust-url developers",
"repository": "https://github.com/servo/rust-url",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "URL library for Rust, based on the WHATWG URL Standard"
},
{
"name": "utf-8",
"version": "0.7.6",
"authors": "Simon Sapin <simon.sapin@exyr.org>",
"repository": "https://github.com/SimonSapin/rust-utf8",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Incremental, zero-copy UTF-8 decoding with error handling"
},
{
"name": "utf8-decode",
"version": "1.0.1",
"authors": "Timothée Haudebourg <author@haudebourg.net>",
"repository": "https://github.com/timothee-haudebourg/utf8-decode",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "UTF-8 incremental decoding iterators."
},
{
"name": "utime",
"version": "0.3.1",
"authors": "Hyeon Kim <simnalamburt@gmail.com>",
"repository": "https://github.com/simnalamburt/utime",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A missing utime function for Rust."
},
{
"name": "vcpkg",
2021-06-25 07:35:25 +02:00
"version": "0.2.15",
"authors": "Jim McGrath <jimmc2@gmail.com>",
"repository": "https://github.com/mcgoo/vcpkg-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "A library to find native dependencies in a vcpkg tree at build time in order to be used in Cargo build scripts."
},
{
"name": "version_check",
2022-01-15 05:59:43 +01:00
"version": "0.9.4",
"authors": "Sergio Benitez <sb@sergio.bz>",
"repository": "https://github.com/SergioBenitez/version_check",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Tiny crate to check the version of the installed/running rustc."
},
{
"name": "want",
"version": "0.3.0",
"authors": "Sean McArthur <sean@seanmonstar.com>",
"repository": "https://github.com/seanmonstar/want",
"license": "MIT",
"license_file": null,
"description": "Detect when another Future wants a result."
},
{
"name": "wasi",
2021-06-25 07:35:25 +02:00
"version": "0.10.0+wasi-snapshot-preview1",
"authors": "The Cranelift Project Developers",
"repository": "https://github.com/bytecodealliance/wasi",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
"license_file": null,
"description": "Experimental WASI API bindings for Rust"
},
{
"name": "wasi",
"version": "0.11.0+wasi-snapshot-preview1",
"authors": "The Cranelift Project Developers",
"repository": "https://github.com/bytecodealliance/wasi",
"license": "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
"license_file": null,
"description": "Experimental WASI API bindings for Rust"
},
{
"name": "wasm-bindgen",
2022-09-24 04:39:21 +02:00
"version": "0.2.83",
"authors": "The wasm-bindgen Developers",
"repository": "https://github.com/rustwasm/wasm-bindgen",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Easy support for interacting between JS and Rust."
},
{
"name": "wasm-bindgen-backend",
2022-09-24 04:39:21 +02:00
"version": "0.2.83",
"authors": "The wasm-bindgen Developers",
"repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/backend",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Backend code generation of the wasm-bindgen tool"
},
{
"name": "wasm-bindgen-futures",
2022-09-24 04:39:21 +02:00
"version": "0.4.33",
"authors": "The wasm-bindgen Developers",
"repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/futures",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Bridging the gap between Rust Futures and JavaScript Promises"
},
{
"name": "wasm-bindgen-macro",
2022-09-24 04:39:21 +02:00
"version": "0.2.83",
"authors": "The wasm-bindgen Developers",
"repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Definition of the `#[wasm_bindgen]` attribute, an internal dependency"
},
{
"name": "wasm-bindgen-macro-support",
2022-09-24 04:39:21 +02:00
"version": "0.2.83",
"authors": "The wasm-bindgen Developers",
"repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro-support",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "The part of the implementation of the `#[wasm_bindgen]` attribute that is not in the shared backend crate"
},
{
"name": "wasm-bindgen-shared",
2022-09-24 04:39:21 +02:00
"version": "0.2.83",
"authors": "The wasm-bindgen Developers",
"repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/shared",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Shared support between wasm-bindgen and wasm-bindgen cli, an internal dependency."
},
{
"name": "web-sys",
2022-09-24 04:39:21 +02:00
"version": "0.3.60",
"authors": "The wasm-bindgen Developers",
"repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/web-sys",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Bindings for all Web APIs, a procedurally generated crate from WebIDL"
},
{
"name": "webpki",
2020-12-09 06:34:43 +01:00
"version": "0.21.4",
"authors": "Brian Smith <brian@briansmith.org>",
"repository": "https://github.com/briansmith/webpki",
"license": null,
"license_file": "LICENSE",
"description": "Web PKI X.509 Certificate Verification."
},
{
"name": "webpki-roots",
"version": "0.21.1",
"authors": "Joseph Birr-Pixton <jpixton@gmail.com>",
"repository": "https://github.com/ctz/webpki-roots",
"license": "MPL-2.0",
"license_file": null,
"description": "Mozilla's CA root certificates for use with webpki"
},
{
"name": "which",
2022-09-24 04:39:21 +02:00
"version": "4.3.0",
"authors": "Harry Fei <tiziyuanfang@gmail.com>",
"repository": "https://github.com/harryfei/which-rs.git",
"license": "MIT",
"license_file": null,
"description": "A Rust equivalent of Unix command \"which\". Locate installed executable in cross platforms."
},
{
"name": "winapi",
"version": "0.3.9",
"authors": "Peter Atashian <retep998@gmail.com>",
"repository": "https://github.com/retep998/winapi-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Raw FFI bindings for all of Windows API."
},
{
"name": "winapi-i686-pc-windows-gnu",
"version": "0.4.0",
"authors": "Peter Atashian <retep998@gmail.com>",
"repository": "https://github.com/retep998/winapi-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead."
},
{
"name": "winapi-util",
"version": "0.1.5",
"authors": "Andrew Gallant <jamslam@gmail.com>",
"repository": "https://github.com/BurntSushi/winapi-util",
2020-12-15 08:10:25 +01:00
"license": "MIT OR Unlicense",
"license_file": null,
"description": "A dumping ground for high level safe wrappers over winapi."
},
{
"name": "winapi-x86_64-pc-windows-gnu",
"version": "0.4.0",
"authors": "Peter Atashian <retep998@gmail.com>",
"repository": "https://github.com/retep998/winapi-rs",
2020-12-15 08:10:25 +01:00
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead."
},
{
"name": "windows-sys",
2022-09-24 04:39:21 +02:00
"version": "0.36.1",
"authors": "Microsoft",
"repository": "https://github.com/microsoft/windows-rs",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Rust for Windows"
},
{
"name": "windows_aarch64_msvc",
2022-09-24 04:39:21 +02:00
"version": "0.36.1",
"authors": "Microsoft",
2022-09-24 04:39:21 +02:00
"repository": "https://github.com/microsoft/windows-rs",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Code gen support for the windows crate"
},
{
"name": "windows_i686_gnu",
2022-09-24 04:39:21 +02:00
"version": "0.36.1",
"authors": "Microsoft",
2022-09-24 04:39:21 +02:00
"repository": "https://github.com/microsoft/windows-rs",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Code gen support for the windows crate"
},
{
"name": "windows_i686_msvc",
2022-09-24 04:39:21 +02:00
"version": "0.36.1",
"authors": "Microsoft",
2022-09-24 04:39:21 +02:00
"repository": "https://github.com/microsoft/windows-rs",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Code gen support for the windows crate"
},
{
"name": "windows_x86_64_gnu",
2022-09-24 04:39:21 +02:00
"version": "0.36.1",
"authors": "Microsoft",
2022-09-24 04:39:21 +02:00
"repository": "https://github.com/microsoft/windows-rs",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Code gen support for the windows crate"
},
{
"name": "windows_x86_64_msvc",
2022-09-24 04:39:21 +02:00
"version": "0.36.1",
"authors": "Microsoft",
2022-09-24 04:39:21 +02:00
"repository": "https://github.com/microsoft/windows-rs",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Code gen support for the windows crate"
},
{
"name": "winreg",
"version": "0.7.0",
"authors": "Igor Shaula <gentoo90@gmail.com>",
"repository": "https://github.com/gentoo90/winreg-rs",
"license": "MIT",
"license_file": null,
"description": "Rust bindings to MS Windows Registry API"
},
{
"name": "zip",
2022-09-24 04:39:21 +02:00
"version": "0.6.2",
"authors": "Mathijs van de Nes <git@mathijs.vd-nes.nl>|Marli Frost <marli@frost.red>|Ryan Levick <ryan.levick@gmail.com>",
"repository": "https://github.com/zip-rs/zip.git",
"license": "MIT",
"license_file": null,
"description": "Library to support the reading and writing of zip files."
Backups (#1685) * Add zstd dep * Implement backend backup with zstd * Implement backup thinning * Write backup meta * Use new file ending anki21b * Asynchronously backup on collection close in Rust * Revert "Add zstd dep" This reverts commit 3fcb2141d2be15f907269d13275c41971431385c. * Add zstd again * Take backup col path from col struct * Fix formatting * Implement backup restoring on backend * Normalize restored media file names * Refactor `extract_legacy_data()` A bit cumbersome due to borrowing rules. * Refactor * Make thinning calendar-based and gradual * Consider last kept backups of previous stages * Import full apkgs and colpkgs with backend * Expose new backup settings * Test `BackupThinner` and make it deterministic * Mark backup_path when closing optional * Delete leaky timer * Add progress updates for restoring media * Write restored collection to tempfile first * Do collection compression in the background thread This has us currently storing an uncompressed and compressed copy of the collection in memory (not ideal), but means the collection can be closed without waiting for compression to complete. On a large collection, this takes a close and reopen from about 0.55s to about 0.07s. The old backup code for comparison: about 0.35s for compression off, about 8.5s for zip compression. * Use multithreading in zstd compression On my system, this reduces the compression time of a large collection from about 0.55s to 0.08s. * Stream compressed collection data into zip file * Tweak backup explanation + Fix incorrect tab order for ignore accents option * Decouple restoring backup and full import In the first case, no profile is opened, unless the new collection succeeds to load. In the second case, either the old collection is reloaded or the new one is loaded. * Fix number gap in Progress message * Don't revert backup when media fails but report it * Tweak error flow * Remove native BackupLimits enum * Fix type annotation * Add thinning test for whole year * Satisfy linter * Await async backup to finish * Move restart disclaimer out of backup tab Should be visible regardless of the current tab. * Write restored collection in chunks * Refactor * Write media in chunks and refactor * Log error if removing file fails * join_backup_task -> await_backup_completion * Refactor backup.rs * Refactor backup meta and collection extraction * Fix wrong error being returned * Call sync_all() on new collection * Add ImportError * Store logger in Backend, instead of creating one on demand init_backend() accepts a Logger rather than a log file, to allow other callers to customize the logger if they wish. In the future we may want to explore using the tracing crate as an alternative; it's a bit more ergonomic, as a logger doesn't need to be passed around, and it plays more nicely with async code. * Sync file contents prior to rename; sync folder after rename. * Limit backup creation to once per 30 min * Use zstd::stream::copy_decode * Make importing abortable * Don't revert if backup media is aborted * Set throttle implicitly * Change force flag to minimum_backup_interval * Don't attempt to open folders on Windows * Join last backup thread before starting new one Also refactor. * Disable auto sync and backup when restoring again * Force backup on full download * Include the reason why a media file import failed, and the file path - Introduce a FileIoError that contains a string representation of the underlying I/O error, and an associated path. There are a few places in the code where we're currently manually including the filename in a custom error message, and this is a step towards a more consistent approach (but we may be better served with a more general approach in the future similar to Anyhow's .context()) - Move the error message into importing.ftl, as it's a bit neater when error messages live in the same file as the rest of the messages associated with some functionality. * Fix importing of media files * Minor wording tweaks * Save an allocation I18n strings with replacements are already strings, so we can skip the extra allocation. Not that it matters here at all. * Terminate import if file missing from archive If a third-party tool is creating invalid archives, the user should know about it. This should be rare, so I did not attempt to make it translatable. * Skip multithreaded compression on small collections Co-authored-by: Damien Elmes <gpg@ankiweb.net>
2022-03-07 06:11:31 +01:00
},
{
"name": "zstd",
2022-09-24 04:39:21 +02:00
"version": "0.11.2+zstd.1.5.2",
Backups (#1685) * Add zstd dep * Implement backend backup with zstd * Implement backup thinning * Write backup meta * Use new file ending anki21b * Asynchronously backup on collection close in Rust * Revert "Add zstd dep" This reverts commit 3fcb2141d2be15f907269d13275c41971431385c. * Add zstd again * Take backup col path from col struct * Fix formatting * Implement backup restoring on backend * Normalize restored media file names * Refactor `extract_legacy_data()` A bit cumbersome due to borrowing rules. * Refactor * Make thinning calendar-based and gradual * Consider last kept backups of previous stages * Import full apkgs and colpkgs with backend * Expose new backup settings * Test `BackupThinner` and make it deterministic * Mark backup_path when closing optional * Delete leaky timer * Add progress updates for restoring media * Write restored collection to tempfile first * Do collection compression in the background thread This has us currently storing an uncompressed and compressed copy of the collection in memory (not ideal), but means the collection can be closed without waiting for compression to complete. On a large collection, this takes a close and reopen from about 0.55s to about 0.07s. The old backup code for comparison: about 0.35s for compression off, about 8.5s for zip compression. * Use multithreading in zstd compression On my system, this reduces the compression time of a large collection from about 0.55s to 0.08s. * Stream compressed collection data into zip file * Tweak backup explanation + Fix incorrect tab order for ignore accents option * Decouple restoring backup and full import In the first case, no profile is opened, unless the new collection succeeds to load. In the second case, either the old collection is reloaded or the new one is loaded. * Fix number gap in Progress message * Don't revert backup when media fails but report it * Tweak error flow * Remove native BackupLimits enum * Fix type annotation * Add thinning test for whole year * Satisfy linter * Await async backup to finish * Move restart disclaimer out of backup tab Should be visible regardless of the current tab. * Write restored collection in chunks * Refactor * Write media in chunks and refactor * Log error if removing file fails * join_backup_task -> await_backup_completion * Refactor backup.rs * Refactor backup meta and collection extraction * Fix wrong error being returned * Call sync_all() on new collection * Add ImportError * Store logger in Backend, instead of creating one on demand init_backend() accepts a Logger rather than a log file, to allow other callers to customize the logger if they wish. In the future we may want to explore using the tracing crate as an alternative; it's a bit more ergonomic, as a logger doesn't need to be passed around, and it plays more nicely with async code. * Sync file contents prior to rename; sync folder after rename. * Limit backup creation to once per 30 min * Use zstd::stream::copy_decode * Make importing abortable * Don't revert if backup media is aborted * Set throttle implicitly * Change force flag to minimum_backup_interval * Don't attempt to open folders on Windows * Join last backup thread before starting new one Also refactor. * Disable auto sync and backup when restoring again * Force backup on full download * Include the reason why a media file import failed, and the file path - Introduce a FileIoError that contains a string representation of the underlying I/O error, and an associated path. There are a few places in the code where we're currently manually including the filename in a custom error message, and this is a step towards a more consistent approach (but we may be better served with a more general approach in the future similar to Anyhow's .context()) - Move the error message into importing.ftl, as it's a bit neater when error messages live in the same file as the rest of the messages associated with some functionality. * Fix importing of media files * Minor wording tweaks * Save an allocation I18n strings with replacements are already strings, so we can skip the extra allocation. Not that it matters here at all. * Terminate import if file missing from archive If a third-party tool is creating invalid archives, the user should know about it. This should be rare, so I did not attempt to make it translatable. * Skip multithreaded compression on small collections Co-authored-by: Damien Elmes <gpg@ankiweb.net>
2022-03-07 06:11:31 +01:00
"authors": "Alexandre Bury <alexandre.bury@gmail.com>",
"repository": "https://github.com/gyscos/zstd-rs",
"license": "MIT",
"license_file": null,
"description": "Binding for the zstd compression library."
},
{
"name": "zstd-safe",
2022-09-24 04:39:21 +02:00
"version": "5.0.2+zstd.1.5.2",
Backups (#1685) * Add zstd dep * Implement backend backup with zstd * Implement backup thinning * Write backup meta * Use new file ending anki21b * Asynchronously backup on collection close in Rust * Revert "Add zstd dep" This reverts commit 3fcb2141d2be15f907269d13275c41971431385c. * Add zstd again * Take backup col path from col struct * Fix formatting * Implement backup restoring on backend * Normalize restored media file names * Refactor `extract_legacy_data()` A bit cumbersome due to borrowing rules. * Refactor * Make thinning calendar-based and gradual * Consider last kept backups of previous stages * Import full apkgs and colpkgs with backend * Expose new backup settings * Test `BackupThinner` and make it deterministic * Mark backup_path when closing optional * Delete leaky timer * Add progress updates for restoring media * Write restored collection to tempfile first * Do collection compression in the background thread This has us currently storing an uncompressed and compressed copy of the collection in memory (not ideal), but means the collection can be closed without waiting for compression to complete. On a large collection, this takes a close and reopen from about 0.55s to about 0.07s. The old backup code for comparison: about 0.35s for compression off, about 8.5s for zip compression. * Use multithreading in zstd compression On my system, this reduces the compression time of a large collection from about 0.55s to 0.08s. * Stream compressed collection data into zip file * Tweak backup explanation + Fix incorrect tab order for ignore accents option * Decouple restoring backup and full import In the first case, no profile is opened, unless the new collection succeeds to load. In the second case, either the old collection is reloaded or the new one is loaded. * Fix number gap in Progress message * Don't revert backup when media fails but report it * Tweak error flow * Remove native BackupLimits enum * Fix type annotation * Add thinning test for whole year * Satisfy linter * Await async backup to finish * Move restart disclaimer out of backup tab Should be visible regardless of the current tab. * Write restored collection in chunks * Refactor * Write media in chunks and refactor * Log error if removing file fails * join_backup_task -> await_backup_completion * Refactor backup.rs * Refactor backup meta and collection extraction * Fix wrong error being returned * Call sync_all() on new collection * Add ImportError * Store logger in Backend, instead of creating one on demand init_backend() accepts a Logger rather than a log file, to allow other callers to customize the logger if they wish. In the future we may want to explore using the tracing crate as an alternative; it's a bit more ergonomic, as a logger doesn't need to be passed around, and it plays more nicely with async code. * Sync file contents prior to rename; sync folder after rename. * Limit backup creation to once per 30 min * Use zstd::stream::copy_decode * Make importing abortable * Don't revert if backup media is aborted * Set throttle implicitly * Change force flag to minimum_backup_interval * Don't attempt to open folders on Windows * Join last backup thread before starting new one Also refactor. * Disable auto sync and backup when restoring again * Force backup on full download * Include the reason why a media file import failed, and the file path - Introduce a FileIoError that contains a string representation of the underlying I/O error, and an associated path. There are a few places in the code where we're currently manually including the filename in a custom error message, and this is a step towards a more consistent approach (but we may be better served with a more general approach in the future similar to Anyhow's .context()) - Move the error message into importing.ftl, as it's a bit neater when error messages live in the same file as the rest of the messages associated with some functionality. * Fix importing of media files * Minor wording tweaks * Save an allocation I18n strings with replacements are already strings, so we can skip the extra allocation. Not that it matters here at all. * Terminate import if file missing from archive If a third-party tool is creating invalid archives, the user should know about it. This should be rare, so I did not attempt to make it translatable. * Skip multithreaded compression on small collections Co-authored-by: Damien Elmes <gpg@ankiweb.net>
2022-03-07 06:11:31 +01:00
"authors": "Alexandre Bury <alexandre.bury@gmail.com>",
"repository": "https://github.com/gyscos/zstd-rs",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Safe low-level bindings for the zstd compression library."
},
{
"name": "zstd-sys",
2022-09-24 04:39:21 +02:00
"version": "2.0.1+zstd.1.5.2",
Backups (#1685) * Add zstd dep * Implement backend backup with zstd * Implement backup thinning * Write backup meta * Use new file ending anki21b * Asynchronously backup on collection close in Rust * Revert "Add zstd dep" This reverts commit 3fcb2141d2be15f907269d13275c41971431385c. * Add zstd again * Take backup col path from col struct * Fix formatting * Implement backup restoring on backend * Normalize restored media file names * Refactor `extract_legacy_data()` A bit cumbersome due to borrowing rules. * Refactor * Make thinning calendar-based and gradual * Consider last kept backups of previous stages * Import full apkgs and colpkgs with backend * Expose new backup settings * Test `BackupThinner` and make it deterministic * Mark backup_path when closing optional * Delete leaky timer * Add progress updates for restoring media * Write restored collection to tempfile first * Do collection compression in the background thread This has us currently storing an uncompressed and compressed copy of the collection in memory (not ideal), but means the collection can be closed without waiting for compression to complete. On a large collection, this takes a close and reopen from about 0.55s to about 0.07s. The old backup code for comparison: about 0.35s for compression off, about 8.5s for zip compression. * Use multithreading in zstd compression On my system, this reduces the compression time of a large collection from about 0.55s to 0.08s. * Stream compressed collection data into zip file * Tweak backup explanation + Fix incorrect tab order for ignore accents option * Decouple restoring backup and full import In the first case, no profile is opened, unless the new collection succeeds to load. In the second case, either the old collection is reloaded or the new one is loaded. * Fix number gap in Progress message * Don't revert backup when media fails but report it * Tweak error flow * Remove native BackupLimits enum * Fix type annotation * Add thinning test for whole year * Satisfy linter * Await async backup to finish * Move restart disclaimer out of backup tab Should be visible regardless of the current tab. * Write restored collection in chunks * Refactor * Write media in chunks and refactor * Log error if removing file fails * join_backup_task -> await_backup_completion * Refactor backup.rs * Refactor backup meta and collection extraction * Fix wrong error being returned * Call sync_all() on new collection * Add ImportError * Store logger in Backend, instead of creating one on demand init_backend() accepts a Logger rather than a log file, to allow other callers to customize the logger if they wish. In the future we may want to explore using the tracing crate as an alternative; it's a bit more ergonomic, as a logger doesn't need to be passed around, and it plays more nicely with async code. * Sync file contents prior to rename; sync folder after rename. * Limit backup creation to once per 30 min * Use zstd::stream::copy_decode * Make importing abortable * Don't revert if backup media is aborted * Set throttle implicitly * Change force flag to minimum_backup_interval * Don't attempt to open folders on Windows * Join last backup thread before starting new one Also refactor. * Disable auto sync and backup when restoring again * Force backup on full download * Include the reason why a media file import failed, and the file path - Introduce a FileIoError that contains a string representation of the underlying I/O error, and an associated path. There are a few places in the code where we're currently manually including the filename in a custom error message, and this is a step towards a more consistent approach (but we may be better served with a more general approach in the future similar to Anyhow's .context()) - Move the error message into importing.ftl, as it's a bit neater when error messages live in the same file as the rest of the messages associated with some functionality. * Fix importing of media files * Minor wording tweaks * Save an allocation I18n strings with replacements are already strings, so we can skip the extra allocation. Not that it matters here at all. * Terminate import if file missing from archive If a third-party tool is creating invalid archives, the user should know about it. This should be rare, so I did not attempt to make it translatable. * Skip multithreaded compression on small collections Co-authored-by: Damien Elmes <gpg@ankiweb.net>
2022-03-07 06:11:31 +01:00
"authors": "Alexandre Bury <alexandre.bury@gmail.com>",
"repository": "https://github.com/gyscos/zstd-rs",
"license": "Apache-2.0 OR MIT",
"license_file": null,
"description": "Low-level bindings for the zstd compression library."
}
]