ngrok/
lib.rs

1#![doc = include_str!("../README.md")]
2#![warn(missing_docs)]
3#![cfg_attr(docsrs, feature(doc_cfg))]
4
5mod internals {
6    #[macro_use]
7    pub mod rpc;
8    pub mod proto;
9    pub mod raw_session;
10}
11
12/// Tunnel and endpoint configuration types.
13pub mod config {
14    #[macro_use]
15    mod common;
16    pub use common::*;
17
18    mod headers;
19    mod http;
20    pub use self::http::*;
21    mod labeled;
22    pub use labeled::*;
23    mod oauth;
24    pub use oauth::*;
25    mod oidc;
26    pub use policies::*;
27    mod policies;
28    pub use oidc::*;
29    mod tcp;
30    pub use tcp::*;
31    mod tls;
32    pub use tls::*;
33    mod webhook_verification;
34}
35
36mod proxy_proto;
37
38/// Types for working with the ngrok session.
39pub mod session;
40/// Types for working with ngrok tunnels.
41pub mod tunnel;
42
43/// Types for working with ngrok connections.
44pub mod conn;
45
46/// Types for working with connection forwarders.
47pub mod forwarder;
48mod tunnel_ext;
49
50#[doc(inline)]
51pub use conn::{
52    Conn,
53    EdgeConn,
54    EndpointConn,
55};
56#[doc(inline)]
57pub use internals::proto::Error;
58#[doc(inline)]
59pub use session::Session;
60#[doc(inline)]
61pub use tunnel::Tunnel;
62
63/// A prelude of traits for working with ngrok types.
64pub mod prelude {
65    #[allow(deprecated)]
66    #[doc(inline)]
67    pub use crate::{
68        config::{
69            Action,
70            ForwarderBuilder,
71            HttpTunnelBuilder,
72            InvalidPolicy,
73            LabeledTunnelBuilder,
74            OauthOptions,
75            OidcOptions,
76            Policy,
77            ProxyProto,
78            Rule,
79            Scheme,
80            TcpTunnelBuilder,
81            TlsTunnelBuilder,
82            TunnelBuilder,
83        },
84        conn::{
85            Conn,
86            ConnInfo,
87            EdgeConnInfo,
88            EndpointConnInfo,
89        },
90        internals::proto::EdgeType,
91        internals::proto::Error,
92        tunnel::{
93            EdgeInfo,
94            EndpointInfo,
95            Tunnel,
96            TunnelCloser,
97            TunnelInfo,
98        },
99        tunnel_ext::TunnelExt,
100    };
101}
102
103#[cfg(all(test, feature = "online-tests"))]
104mod online_tests;