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 edit;
18pub mod error;
19pub mod mirror;
20pub mod push;
21pub mod smart_http;
22pub mod ssh;
23pub mod trigger;
24
25pub use error::{
26 Error,
27 Result,
28};
29pub use smart_http::{
30 Service,
31 UploadPack,
32};