diff --git a/crates/cli/README.md b/crates/cli/README.md
new file mode 100644
index 00000000..e69de29b
diff --git a/crates/lib/Cargo.toml b/crates/lib/Cargo.toml
index a557eab8..012dd079 100644
--- a/crates/lib/Cargo.toml
+++ b/crates/lib/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "gamedig"
-version = "0.4.1"
+version = "0.5.0"
edition = "2021"
authors = [
"rust-GameDig contributors [https://github.com/gamedig/rust-gamedig/contributors]",
diff --git a/crates/lib/README.md b/crates/lib/README.md
new file mode 100644
index 00000000..dcf928d9
--- /dev/null
+++ b/crates/lib/README.md
@@ -0,0 +1,93 @@
+
rust-GameDig
+
+The fast library for querying game servers/services.
+
+
+
+
+ This library brings what
+
+ node-GameDig
+
+ does (and not only), to pure Rust!
+
+
+**Warning**: This project goes through frequent API breaking changes and hasn't been thoroughly tested.
+
+## Community
+Checkout the GameDig Community Discord Server [here](https://discord.gg/NVCMn3tnxH).
+Note that it isn't be a replacement for GitHub issues, if you have found a problem
+within the library or want to request a feature, it's better to do so here rather than
+on Discord.
+
+## Usage
+Minimum Supported Rust Version is `1.65.0` and the code is cross-platform.
+
+Pick a game/service/protocol (check the [GAMES](GAMES.md), [SERVICES](SERVICES.md) and [PROTOCOLS](PROTOCOLS.md) files to see the currently supported ones), provide the ip and the port (be aware that some game servers use a separate port for the info queries, the port can also be optional if the server is running the default ports) then query on it.
+
+[Team Fortress 2](https://store.steampowered.com/app/440/Team_Fortress_2/) query example:
+```rust
+use gamedig::games::teamfortress2;
+
+fn main() {
+ let response = teamfortress2::query(&"127.0.0.1".parse().unwrap(), None);
+ // None is the default port (which is 27015), could also be Some(27015)
+
+ match response { // Result type, must check what it is...
+ Err(error) => println!("Couldn't query, error: {}", error),
+ Ok(r) => println!("{:#?}", r)
+ }
+}
+```
+Response (note that some games have a different structure):
+```json5
+{
+ protocol: 17,
+ name: "Team Fortress 2 Dedicated Server.",
+ map: "ctf_turbine",
+ game: "tf2",
+ appid: 440,
+ players_online: 0,
+ players_details: [],
+ players_maximum: 69,
+ players_bots: 0,
+ server_type: Dedicated,
+ has_password: false,
+ vac_secured: true,
+ version: "7638371",
+ port: Some(27015),
+ steam_id: Some(69753253289735296),
+ tv_port: None,
+ tv_name: None,
+ keywords: Some("alltalk,nocrits"),
+ rules: [
+ "mp_autoteambalance": "1",
+ "mp_maxrounds": "5",
+ //....
+ ]
+}
+```
+
+Want to see more examples? Checkout the [examples](crates/lib/examples) folder.
+
+## Documentation
+The documentation is available at [docs.rs](https://docs.rs/gamedig/latest/gamedig/).
+Curious about the history and what changed between versions? Everything is in the [CHANGELOG](CHANGELOG.md) file.
+
+## Contributing
+If you want to see your favorite game/service being supported here, open an issue, and I'll prioritize it (or do a pull request if you want to implement it yourself)!
+
+Before contributing please read [CONTRIBUTING](CONTRIBUTING.md).