git2 0.21.0

Bindings to libgit2 for interoperating with git repositories. This library is both threadsafe and memory safe and allows both reading and writing git repositories.
Documentation
[package]
name = "git2"
version = "0.21.0"
authors = ["Josh Triplett <josh@joshtriplett.org>", "Alex Crichton <alex@alexcrichton.com>"]
license = "MIT OR Apache-2.0"
readme = "README.md"
keywords = ["git"]
repository = "https://github.com/rust-lang/git2-rs"
documentation = "https://docs.rs/git2"
description = """
Bindings to libgit2 for interoperating with git repositories. This library is
both threadsafe and memory safe and allows both reading and writing git
repositories.
"""
categories = ["api-bindings"]
edition = "2021"

[dependencies]
url = { version = "2.5.4", optional = true }
bitflags = "2.1.0"
libc = "0.2"
log = "0.4.8"
libgit2-sys = { path = "libgit2-sys", version = "0.18.4" }

[target."cfg(all(unix, not(target_os = \"macos\")))".dependencies]
openssl-sys = { version = "0.9.45", optional = true }
openssl-probe = { version = "0.1", optional = true }

[dev-dependencies]
clap = { version = "4.4.13", features = ["derive"] }
time = { version = "0.3.47", features = ["formatting"] }
tempfile = "3.1.0"
url = "2.5.4"

[features]
unstable = []
# Experimental SHA256 OID support,
# reflecting upstream libgit2's GIT_EXPERIMENTAL_SHA256.
#
# This is an ABI-breaking change.
# Future releases with this feature may introduce breakages without notice
# Use at your own risk.
#
# Library authors:
# DO NOT enable this feature by default in your dependencies.
# Due to Cargo's additive features,
# downstream users cannot deactivate it once enabled.
#
# NOTE: libgit2's builtin SHA256 implementation is not thread-safe.
# Enable the `https` feature to route hashing through thread-safe OpenSSL impl.
# See https://github.com/rust-lang/git2-rs/issues/1255.
unstable-sha256 = ["libgit2-sys/unstable-sha256"]
default = []
ssh = ["libgit2-sys/ssh", "cred"]
https = ["libgit2-sys/https", "openssl-sys", "openssl-probe", "cred"]
# Include support for credentials, which pulls in the `url` crate and all its dependencies
cred = ["dep:url"]
vendored-libgit2 = ["libgit2-sys/vendored"]
vendored-openssl = ["openssl-sys/vendored", "libgit2-sys/vendored-openssl"]
zlib-ng-compat = ["libgit2-sys/zlib-ng-compat"]

[workspace]
members = ["systest", "git2-curl"]

[package.metadata.docs.rs]
features = ["https", "ssh"]

[[example]]
name = "clone"
required-features = ["https", "ssh"]

[[example]]
name = "fetch"
required-features = ["https", "ssh"]

[[example]]
name = "ls-remote"
required-features = ["https", "ssh"]

[[example]]
name = "pull"
required-features = ["https", "ssh"]