Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
beb266f
feat: apply v1-based rewrite
null8626 Feb 21, 2026
4c9e3f2
feat: update to webhooks v2
null8626 Feb 21, 2026
fe87182
doc: minor grammatical correction
null8626 Feb 24, 2026
4fb0852
doc: use an, not a
null8626 Feb 24, 2026
83517df
doc: grammatical fixes
null8626 Feb 25, 2026
c4f56f7
doc: more consistent README with the other SDKs
null8626 Mar 2, 2026
c9aec22
refactor: remove token validation
null8626 Mar 3, 2026
b6442c0
style: prettier
null8626 Mar 3, 2026
181a325
doc: update project description in Cargo.toml
null8626 Mar 3, 2026
d93289e
feat: rename created_at to voted_at
null8626 Mar 4, 2026
d795ca5
doc: fix minor punctuation issue in README features section
null8626 Mar 5, 2026
61e4e6f
doc: fix typo in README for webhook feature flags
null8626 Mar 5, 2026
a428c97
revert: revert webhooks changes to prevent conflicts with the other p…
null8626 Mar 5, 2026
25aba88
feat: rename user_id to voter_id for clarity
null8626 Mar 5, 2026
8d9e279
style: minor dependabot.yml reformatting
null8626 Mar 7, 2026
67cadd1
perf: use f32 instead of redundant f64
null8626 Mar 9, 2026
f58e8df
doc: minor docstring tweaks for widgets
null8626 Mar 10, 2026
3f80dbb
doc: improve and further clarify client documentation
null8626 Mar 10, 2026
99133e9
doc: minor grammar fixes
null8626 Mar 10, 2026
fd976e2
Merge branch 'v1/webhooks-rewrite' into v1/api-rewrite
null8626 Mar 10, 2026
b8cd555
doc: fix documentation link
null8626 Mar 10, 2026
5b2a506
deps: add log dependency to select webhook impls
null8626 Mar 10, 2026
fae3d3a
doc: make example return 204 instead of 200 for consistency
null8626 Mar 10, 2026
47e6174
meta: refer to itself as an SDK, not a library
null8626 Mar 10, 2026
dfa6787
feat: improve widgets
null8626 Mar 11, 2026
e2f7087
doc: update widget example ID
null8626 Mar 11, 2026
0c8bfc9
doc: fix duplicate project ID docstring
null8626 Mar 11, 2026
6f59571
doc: refer to itself as an SDK, not a library
null8626 Mar 16, 2026
30fa6cd
deps: add timeout handling to actix-web, rocket, and axum
null8626 Mar 17, 2026
f28957a
doc: change 404 error description
null8626 Mar 19, 2026
c1edc1d
feat: add forbidden error type
null8626 Mar 20, 2026
8cfa23a
deps: optimize Cargo.toml dependencies
null8626 Mar 21, 2026
d6cc9ed
[fix,doc]: fix invalid imports and change to_string to into
null8626 Mar 21, 2026
2ca9f38
doc: update readme to reflect changes done to webhooks
null8626 Mar 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
version: 2
updates:
- package-ecosystem: "cargo"
directory: "/"
- package-ecosystem: cargo
directory: '/'
commit-message:
prefix: "deps: "
prefix: 'deps: '
schedule:
day: "saturday"
interval: "weekly"
time: "07:15"
day: saturday
interval: weekly
time: '07:15'
69 changes: 32 additions & 37 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
[package]
name = "topgg"
version = "2.0.0"
edition = "2021"
edition = "2024"
rust-version = "1.87"
authors = ["null (https://github.com/null8626)", "Top.gg <support@top.gg> (https://top.gg)"]
description = "A simple API wrapper for Top.gg written in Rust."
description = "The community-maintained Rust SDK for Top.gg."
readme = "README.md"
repository = "https://github.com/Top-gg-Community/rust-sdk"
license = "MIT"
Expand All @@ -12,69 +13,63 @@ categories = ["api-bindings", "web-programming::http-client"]
exclude = [".gitattributes", ".github/", ".gitignore", "rustfmt.toml"]

[dependencies]
base64 = { version = "0.22", optional = true }
cfg-if = "1"
paste = { version = "1", optional = true }
reqwest = { version = "0.12", optional = true }
serde = { version = "1", features = ["derive"] }
tokio = { version = "1", features = ["rt", "sync", "time"], optional = true }
urlencoding = "2"
urlencoding = { version = "2", optional = true }
bytes = { version = "1.11", optional = true }
hex = { version = "0.4", optional = true }
sha2 = { version = "0.10", optional = true }
hmac = { version = "0.12", optional = true }
futures-core = { version = "0.3", optional = true }

serenity = { version = "0.12", features = ["builder", "client", "gateway", "model", "utils"], optional = true }

twilight-http = { version = "0.15", optional = true }
twilight-model = { version = "0.15", optional = true }
twilight-cache-inmemory = { version = "0.15", optional = true }

chrono = { version = "0.4", default-features = false, optional = true, features = ["serde", "now"] }
serde_json = { version = "1", optional = true }
chrono = { version = "0.4", default-features = false, features = ["serde", "now"] }
serde_json = "1"
serde_variant = { version = "0.1", optional = true }
log = { version = "0.4", optional = true }

rocket = { version = "0.5", default-features = false, features = ["json"], optional = true }
axum = { version = "0.8", default-features = false, optional = true, features = ["http1", "tokio"] }
async-trait = { version = "0.1", optional = true }
warp = { version = "0.3", default-features = false, optional = true }
actix-web = { version = "4", default-features = false, optional = true }
tower = { version = "0.5", features = ["timeout"], optional = true }

[dev-dependencies]
tokio = { version = "1", features = ["rt", "macros"] }
twilight-gateway = "0.15"

[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
cast-lossless = "allow"
cast-possible-truncation = "allow"
cast-possible-wrap = "allow"
cast-sign-loss = "allow"
inline-always = "allow"
module-name-repetitions = "allow"
must-use-candidate = "allow"
return-self-not-must-use = "allow"
similar-names = "allow"
single-match-else = "allow"
too-many-lines = "allow"
unnecessary-wraps = "allow"
unreadable-literal = "allow"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
rustc-args = ["--cfg", "docsrs"]

[features]
default = ["api"]
api = ["async-trait", "base64", "chrono", "reqwest", "serde_json"]
bot-autoposter = ["api", "tokio"]
autoposter = ["bot-autoposter"]
api = ["async-trait", "reqwest", "serde_variant", "urlencoding"]

serenity = ["dep:serenity"]
twilight = ["twilight-http", "twilight-model"]

serenity = ["dep:serenity", "paste"]
serenity-cached = ["serenity", "serenity/cache"]
webhooks = ["hex", "hmac", "log", "sha2"]
rocket = ["webhooks", "tokio/time", "dep:rocket"]
axum = ["webhooks", "async-trait", "tower", "dep:axum"]
warp = ["webhooks", "bytes", "dep:warp"]
actix-web = ["webhooks", "futures-core", "dep:actix-web"]

twilight = ["twilight-model", "twilight-http"]
twilight-cached = ["twilight", "twilight-cache-inmemory"]
[lints.rust]
unsafe_code = "forbid"

webhooks = []
rocket = ["webhooks", "dep:rocket"]
axum = ["webhooks", "async-trait", "serde_json", "dep:axum"]
warp = ["webhooks", "async-trait", "dep:warp"]
actix-web = ["webhooks", "dep:actix-web"]
[lints.rustdoc]
broken_intra_doc_links = "deny"

[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
Loading