litchee 0.1.5

Async, builder-pattern Rust client for the Lichess API: full endpoint coverage, NDJSON streaming, and OAuth2 PKCE ('Log in with Lichess').
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.95"
name = "litchee"
version = "0.1.5"
authors = ["Olivier Bazin <olivierbazin.it@gmail.com>"]
build = false
exclude = [
    "/reference",
    "/.github",
    "/.claude",
    "/.gitignore",
    "/.gitmodules",
    "/.envrc",
    "/clippy.toml",
    "/rustfmt.toml",
    "/flake.nix",
    "/flake.lock",
    "/rust-toolchain.toml",
    "/CLAUDE.md",
    "/todo.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Async, builder-pattern Rust client for the Lichess API: full endpoint coverage, NDJSON streaming, and OAuth2 PKCE ('Log in with Lichess')."
homepage = "https://github.com/obazin/litchee"
documentation = "https://docs.rs/litchee"
readme = "README.md"
keywords = [
    "lichess",
    "chess",
    "api",
    "client",
    "oauth",
]
categories = [
    "api-bindings",
    "asynchronous",
    "web-programming::http-client",
]
license = "MIT"
repository = "https://github.com/obazin/litchee"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[lib]
name = "litchee"
path = "src/lib.rs"

[[example]]
name = "oauth_flow"
path = "examples/oauth_flow.rs"

[[example]]
name = "profile"
path = "examples/profile.rs"

[[example]]
name = "tv_feed"
path = "examples/tv_feed.rs"

[[test]]
name = "account"
path = "tests/account.rs"

[[test]]
name = "analysis"
path = "tests/analysis.rs"

[[test]]
name = "arena"
path = "tests/arena.rs"

[[test]]
name = "board"
path = "tests/board.rs"

[[test]]
name = "bot"
path = "tests/bot.rs"

[[test]]
name = "broadcasts"
path = "tests/broadcasts.rs"

[[test]]
name = "bulk_pairing"
path = "tests/bulk_pairing.rs"

[[test]]
name = "challenges"
path = "tests/challenges.rs"

[[test]]
name = "external_engine"
path = "tests/external_engine.rs"

[[test]]
name = "fide"
path = "tests/fide.rs"

[[test]]
name = "games"
path = "tests/games.rs"

[[test]]
name = "live"
path = "tests/live.rs"

[[test]]
name = "messaging"
path = "tests/messaging.rs"

[[test]]
name = "oauth"
path = "tests/oauth.rs"

[[test]]
name = "opening_explorer"
path = "tests/opening_explorer.rs"

[[test]]
name = "path_encoding"
path = "tests/path_encoding.rs"

[[test]]
name = "path_segment_guard"
path = "tests/path_segment_guard.rs"

[[test]]
name = "puzzles"
path = "tests/puzzles.rs"

[[test]]
name = "relations"
path = "tests/relations.rs"

[[test]]
name = "resilience"
path = "tests/resilience.rs"

[[test]]
name = "retry"
path = "tests/retry.rs"

[[test]]
name = "simuls"
path = "tests/simuls.rs"

[[test]]
name = "spec_examples"
path = "tests/spec_examples.rs"

[[test]]
name = "studies"
path = "tests/studies.rs"

[[test]]
name = "swiss"
path = "tests/swiss.rs"

[[test]]
name = "tablebase"
path = "tests/tablebase.rs"

[[test]]
name = "teams"
path = "tests/teams.rs"

[[test]]
name = "tv"
path = "tests/tv.rs"

[[test]]
name = "users"
path = "tests/users.rs"

[dependencies.async-stream]
version = "0.3.6"

[dependencies.base64]
version = "0.22.1"

[dependencies.bytes]
version = "1.11.1"

[dependencies.futures-core]
version = "0.3.32"

[dependencies.futures-util]
version = "0.3.32"

[dependencies.percent-encoding]
version = "2.3"

[dependencies.rand]
version = "0.10"

[dependencies.reqwest]
version = "0.13.4"
features = [
    "rustls",
    "json",
    "form",
    "query",
    "stream",
    "http2",
]
default-features = false

[dependencies.serde]
version = "1.0.228"
features = ["derive"]

[dependencies.serde_json]
version = "1.0.150"

[dependencies.serde_urlencoded]
version = "0.7.1"

[dependencies.sha2]
version = "0.11"

[dependencies.thiserror]
version = "2.0.18"

[dependencies.tokio]
version = "1"
features = ["time"]
default-features = false

[dependencies.url]
version = "2.5.8"

[dev-dependencies.futures-util]
version = "0.3.32"

[dev-dependencies.tokio]
version = "1.52.3"
features = [
    "macros",
    "rt-multi-thread",
    "net",
    "io-util",
    "time",
]

[dev-dependencies.wiremock]
version = "0.6.5"

[lints.clippy]
missing_errors_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"

[lints.clippy.all]
level = "deny"
priority = -1

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
missing_debug_implementations = "warn"
missing_docs = "warn"
unreachable_pub = "warn"
unsafe_code = "forbid"