docker_sdk/
lib.rs

1//! docker_sdk 是一个用于操纵docker容器的多传输实用程序 [docker](https://www.docker.com/) 
2//! 
3//! 官网1年前提供的SDK,缺失部分功能,现clone,添加/修改部分功能,可以理解成模仿,抄袭,山寨...
4//!
5//! 如有侵权,请联系删除
6//! 
7//! # examples
8//!
9//! ```no_run
10//! # async {
11//! let docker = docker_sdk::Docker::new();
12//!
13//! match docker.images().list(&Default::default()).await {
14//!     Ok(images) => {
15//!         for image in images {
16//!             println!("{:?}", image.repo_tags);
17//!         }
18//!     },
19//!     Err(e) => eprintln!("Something bad happened! {}", e),
20//! }
21//! # };
22//! ```
23
24pub mod errors;
25pub mod transport;
26pub mod tty;
27
28pub mod container;
29pub mod docker;
30pub mod exec;
31pub mod image;
32pub mod network;
33pub mod service;
34pub mod volume;
35
36mod tarball;
37
38#[cfg(feature = "chrono")]
39mod datetime;
40
41pub use hyper::Uri;
42
43pub use crate::{
44    container::{
45        Container, ContainerFilter, ContainerListOptions, ContainerOptions, Containers,
46        LogsOptions, RmContainerOptions,
47    },
48    docker::{Docker, EventsOptions},
49    errors::{Error, Result},
50    exec::{Exec, ExecContainerOptions, ExecResizeOptions},
51    image::{
52        BuildOptions, Image, ImageFilter, ImageListOptions, Images, PullOptions, PushOptions, RegistryAuth,
53        TagOptions,
54    },
55    network::{
56        ContainerConnectionOptions, Network, NetworkCreateOptions, NetworkListOptions, Networks,
57    },
58    service::{Service, ServiceFilter, ServiceListOptions, ServiceOptions, Services},
59    transport::Transport,
60    volume::{Volume, VolumeCreateOptions, Volumes},
61};
62
63macro_rules! reexport {
64    (@alias $module:ident :: $item:ident) => {
65        reexport!(@alias $module::$item as $item);
66    };
67    (@alias $module:ident :: $item:ident as $old_item:ident) => {
68        ::paste::paste! {
69            #[deprecated(
70                since = "0.8.0",
71                note = "Please use `docker_sdk::" $module "::" $item "`. "
72                       "This will be removed in 0.9.0."
73            )]
74            pub type $old_item = $crate::$module::$item;
75        }
76    };
77    (mod $old_module:ident; $( $module:ident :: {$( $item:ident $(as $old_item:ident)? ),*$(,)?} ; )*) => {
78        #[deprecated(
79            since = "0.8.0",
80            note = "Please use `docker_sdk::{container, docker, exec, image, network, service, volume}` as appropriate. This will be removed in 0.9.0."
81        )]
82        pub mod $old_module {
83            $($( reexport!(@alias $module::$item $(as $old_item)?); )*)*
84        }
85    };
86}
87
88reexport! {
89    mod builder;
90    container::{
91        ContainerListOptions, ContainerListOptionsBuilder, ContainerOptions,
92        ContainerOptionsBuilder, LogsOptions, LogsOptionsBuilder, RmContainerOptions,
93        RmContainerOptionsBuilder,
94    };
95    docker::{EventsOptions, EventFilterType, EventFilter, EventsOptionsBuilder};
96    exec::{
97        ExecContainerOptions, ExecContainerOptionsBuilder, ExecResizeOptions,
98        ExecResizeOptionsBuilder,
99    };
100    image::{
101        RegistryAuth, RegistryAuthBuilder, TagOptions, TagOptionsBuilder, PullOptions,
102        PullOptionsBuilder, BuildOptions, BuildOptionsBuilder, ImageFilter, ImageListOptions,
103        ImageListOptionsBuilder,
104    };
105    network::{
106        NetworkListOptions, NetworkCreateOptions, NetworkCreateOptionsBuilder,
107        ContainerConnectionOptions, ContainerConnectionOptionsBuilder,
108    };
109    service::{
110        ServiceListOptions, ServiceFilter, ServiceListOptionsBuilder, ServiceOptions,
111        ServiceOptionsBuilder,
112    };
113    volume::{VolumeCreateOptions, VolumeCreateOptionsBuilder};
114}
115
116reexport! {
117    mod rep;
118    container::{
119        ContainerInfo as Container, ContainerDetails, Mount, State, HostConfig, Port, Stats,
120        MemoryStats, MemoryStat, NetworkStats as Network, CpuStats, CpuUsage, ThrottlingData, BlkioStats, BlkioStat, Change,
121        Top, ContainerCreateInfo, Exit,
122    };
123    docker::{Version, Info, Event, Actor};
124    exec::{ExecDetails, ProcessConfig};
125    image::{
126        SearchResult, ImageInfo as Image, ImageDetails, ContainerConfig, History, Status,
127    };
128    network::{
129        NetworkSettings, NetworkEntry, Ipam, NetworkDetails,
130        NetworkContainerDetails, NetworkCreateInfo,
131    };
132    service::{
133        ServicesInfo as Services, ServiceInfo as Service, ObjectVersion, Endpoint, EndpointSpec,
134        EndpointPortConfig, UpdateStatus, ServiceStatus, JobStatus, ServiceDetails, ServiceSpec,
135        TaskSpec, Mode, Replicated, ReplicatedJob, UpdateConfig, RollbackConfig,
136        NetworkAttachmentConfig, ServiceCreateInfo,
137    };
138    volume::{VolumeCreateInfo, VolumesInfo as Volumes, VolumeInfo as Volume};
139}