anvilsign in

collin/anvil

1//! Server-side git wire protocol for anvil.
2//!
3//! `gix` provides object/ref/pack *plumbing* but no server-side protocol: it
4//! ships no `upload-pack`/`receive-pack` and its `gix-transport`/`gix-protocol`
5//! crates are client-only. This crate fills that gap.
6//!
7//! ## Design
8//! - **Transport-agnostic.** [`smart_http`] takes a repo path plus request bytes
9//! and returns response bytes / a packfile stream, with no HTTP dependency, so
10//! the same engine serves smart-HTTP (`anvil-web`) and, later, SSH
11//! (`anvil-ssh`).
12//! - **Bootstrapped on [`gitserver_core`]** (vendored, gix-native pkt-line /
13//! protocol-v2 / upload-pack / receive-pack), behind this crate's interface so
14//! it can be replaced incrementally with an upstream-shaped implementation.
15
16pub mod browse;
17pub mod error;
18pub mod mirror;
19pub mod smart_http;
20pub mod ssh;
21pub mod trigger;
22
23pub use error::{
24 Error,
25 Result,
26};
27pub use smart_http::{
28 Service,
29 UploadPack,
30};