1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
//! # postgresql_embedded
//!
//! [](http://crates.io/crates/postgresql_embedded)
//! [](https://docs.rs/postgresql_embedded)
//! [](http://crates.io/crates/postgresql_embedded)
//! [](https://github.com/theseus-rs/postgresql_embedded/blob/main/postgresql_embedded/LICENSE)
//! [](https://semver.org/spec/v2.0.0.html)
//!
//! Install and run a PostgreSQL database locally on Linux, MacOS or Windows. PostgreSQL can be
//! bundled with your application, or downloaded on demand.
//!
//! ## Table of contents
//!
//! - [Examples](#examples)
//! - [Information](#information)
//! - [Feature flags](#feature-flags)
//! - [Safety](#safety)
//! - [License](#license)
//! - [Notes](#notes)
//!
//! ## Examples
//!
//! ### Asynchronous API
//! **Note**: The following example requires the `tokio` runtime.
//!
//! ```rust
//! use postgresql_embedded::PostgreSQL;
//!
//! #[tokio::main]
//! async fn main() {
//! let mut postgresql = PostgreSQL::default();
//! postgresql.setup().await.unwrap();
//! postgresql.start().await.unwrap();
//!
//! let database_name = "test";
//! postgresql.create_database(database_name).await.unwrap();
//! postgresql.database_exists(database_name).await.unwrap();
//! postgresql.drop_database(database_name).await.unwrap();
//!
//! postgresql.stop().await.unwrap();
//! }
//! ```
//!
//! ### Synchronous API
//! ```rust, ignore
//! use postgresql_embedded::blocking::PostgreSQL;
//!
//! let mut postgresql = PostgreSQL::default();
//! postgresql.setup().unwrap();
//! postgresql.start().unwrap();
//!
//! let database_name = "test";
//! postgresql.create_database(database_name).unwrap();
//! postgresql.database_exists(database_name).unwrap();
//! postgresql.drop_database(database_name).unwrap();
//!
//! postgresql.stop().unwrap();
//! ```
//!
//! ## Information
//!
//! The downloaded postgresql binaries are cached in the following directories:
//!
//! - Unix: `$HOME/.theseus/postgresql`
//! - Windows: `%USERPROFILE%\.theseus\postgresql`
//!
//! ## Feature flags
//!
//! postgresql_embedded uses [feature flags] to address compile time and binary size
//! uses.
//!
//! The following features are available:
//!
//! Name | Description | Default?
//! ---|---|---
//! `bundled` | Bundles the PostgreSQL archive into the resulting binary | Yes
//! `blocking` | Enables the blocking API; requires `tokio` | No
//! `tokio` | Enables using tokio for async | No
//!
//! ## Safety
//!
//! These crates use `#![forbid(unsafe_code)]` to ensure everything is implemented in 100% safe Rust.
//!
//! ## License
//!
//! Licensed under either of
//!
//! * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or <https://www.apache.org/licenses/LICENSE-2.0>)
//! * MIT license ([LICENSE-MIT](LICENSE-MIT) or <https://opensource.org/licenses/MIT>)
//!
//! at your option.
//!
//! PostgreSQL is covered under [The PostgreSQL License](https://opensource.org/licenses/postgresql).
//!
//! ## Notes
//!
//! Uses PostgreSQL binaries from [theseus-rs/postgresql-binaries](https://github.com/theseus-rs/postgresql-binaries).
pub use ;
pub use ;
pub use Settings;