Client library for the Challonge REST API

Overview

challonge-rs

Crates badge CI Documentation MIT licensed

Client library for the Challonge REST API.

Usage

  1. Log in to Challonge with Challonge::new.
  2. Call API methods to interact with the service.

Documentation

Challonge API documentation.

Features

  • default - uses rustls backend for reqwest.
  • default-tls - uses default-tls backend for reqwest.

Examples

See the examples directory in the source tree.

Comments
  • Can't build openssl v0.7.14

    Can't build openssl v0.7.14

    I am working on a project. Until yet, I didn't use challonge-rs. But after adding challonge = "0.4" to my project's dependencies, I get the following error when building the project: error: failed to run custom build command for 'openssl v0.7.14'. This error disappears when I remove challonge from my dependencies. I was wondering if you had a fix for this issue.

    opened by ErwanTLG 6
  • Update serde_json requirement from 0.7 to 1.0

    Update serde_json requirement from 0.7 to 1.0

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Updates the requirements on serde_json to permit the latest version.

    Release notes

    Sourced from serde_json's releases.

    v1.0.66

    • Preserve exponent signifier and unary plus in exponent of arbitrary_precision numbers (#786, thanks @​ruifengx)
    Commits
    • 6346bb3 Release 1.0.66
    • 7780a67 Merge pull request #789 from serde-rs/orpattern
    • 53e6ce4 Restore compatiblity with older rustc after PR 786
    • c38fc65 Merge pull request #786 from ruifengx/master
    • c9193d4 Release 1.0.65
    • f205576 Merge pull request 788 from jplatte/doc-cfg
    • 6f15a0e Add doc(cfg(feature = "std")) attribute where appropriate
    • d8f70a3 Add CI job to ensure documentation can be built
    • e2978b6 Document unbounded_depth, raw_value feature-gated API via doc_cfg
    • 2152324 Make arbitrary_precision preserve the exact string representation
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Permit empty subdomain in TournamentId.

    Permit empty subdomain in TournamentId.

    Tournaments on the main site can be referenced with just the path component.

    I chose to represent this with an empty string, we could also add another enum variant, or switch the subdomain to Option if you prefer.

    opened by jmgao 1
  • Borrow large structs

    Borrow large structs

    Borrowing structs instead of requiring the user to clone them is better because it's more ergonomical for them to not need to clone it and instead simply reference it, and instead of requiring all fields to be cloned, only a few will need to be. I can look into some implementation details later for 0 clones.

    opened by ghost 1
  • Future-proof the library

    Future-proof the library

    Explicitly specify what type we're deserialising in create_participant_bulk to protect against _ being inferred as having type !. See here for more info.

    opened by canndrew 0
  • Reduce number of clones on array decodes + utils

    Reduce number of clones on array decodes + utils

    By mapping the values on a serde Value::Array, cloning each element in the array will no longer be necessary. This was due to the lifetime of each element not living long enough in a regular if-let-loop-if-let, pushing to a Vec.

    Additionally, add a utility module for common functions. Rather than duplicating the into_map and remove function across each mod, they can be put into a common utilities module.

    This PR's scope is rather large, and could be separated out if you want. The second commit would depend on the first commit being merged if you want them in separate PRs.

    opened by ghost 0
  • Reduce travis build times by 80%

    Reduce travis build times by 80%

    By caching the ~/.cargo directory and not cargo bench no-run'ing for currently no necessary reason on nightly, the build time should drastically reduce after the initial build to cache.

    My metrics:

    Elapsed time 1 min 50 sec
    Total time 3 min 38 sec
    

    The .travis.yml file now has consistent indentation.

    sudo: false in the .travis.yml file will allow this caching.

    opened by ghost 0
  • Update base64 requirement from 0.13 to 0.20

    Update base64 requirement from 0.13 to 0.20

    Updates the requirements on base64 to permit the latest version.

    Changelog

    Sourced from base64's changelog.

    0.20.0

    Breaking changes

    • Update MSRV to 1.57.0
    • Decoding can now either ignore padding, require correct padding, or require no padding. The default is to require correct padding.
      • The NO_PAD config now requires that padding be absent when decoding.

    0.20.0-alpha.1

    Breaking changes

    • Extended the Config concept into the Engine abstraction, allowing the user to pick different encoding / decoding implementations.
      • What was formerly the only algorithm is now the FastPortable engine, so named because it's portable (works on any CPU) and relatively fast.
      • This opens the door to a portable constant-time implementation (#153, presumably ConstantTimePortable?) for security-sensitive applications that need side-channel resistance, and CPU-specific SIMD implementations for more speed.
      • Standard base64 per the RFC is available via DEFAULT_ENGINE. To use different alphabets or other settings (padding, etc), create your own engine instance.
    • CharacterSet is now Alphabet (per the RFC), and allows creating custom alphabets. The corresponding tables that were previously code-generated are now built dynamically.
    • Since there are already multiple breaking changes, various functions are renamed to be more consistent and discoverable.
    • MSRV is now 1.47.0 to allow various things to use const fn.
    • DecoderReader now owns its inner reader, and can expose it via into_inner(). For symmetry, EncoderWriter can do the same with its writer.
    • encoded_len is now public so you can size encode buffers precisely.

    0.13.1

    • More precise decode buffer sizing, avoiding unnecessary allocation in decode_config.

    0.13.0

    • Config methods are const
    • Added EncoderStringWriter to allow encoding directly to a String
    • EncoderWriter now owns its delegate writer rather than keeping a reference to it (though refs still work)
      • As a consequence, it is now possible to extract the delegate writer from an EncoderWriter via finish(), which returns Result<W> instead of Result<()>. If you were calling finish() explicitly, you will now need to use let _ = foo.finish() instead of just foo.finish() to avoid a warning about the unused value.
    • When decoding input that has both an invalid length and an invalid symbol as the last byte, InvalidByte will be emitted instead of InvalidLength to make the problem more obvious.

    0.12.2

    • Add BinHex alphabet

    0.12.1

    • Add Bcrypt alphabet

    0.12.0

    • A Read implementation (DecoderReader) to let users transparently decoded data from a b64 input source
    • IMAP's modified b64 alphabet
    • Relaxed type restrictions to just AsRef<[ut8]> for main encode*/decode* functions
    • A minor performance improvement in encoding

    0.11.0

    • Minimum rust version 1.34.0

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Rewrite the library

    Rewrite the library

    • [x] Use serde crate.
    • [x] Use reqwest crate.
    • [x] Update dependencies.
    • [ ] User serde's own deserialisation mechanisms instead of custom methods (struct::decode and the util.rs).
    • [ ] Provide more user-friendly interface.
    • [ ] Write an online-book.
    enhancement help wanted 
    opened by vityafx 0
  • Improve send file in attachment usability

    Improve send file in attachment usability

    At this moment it needs Vec<u8>. To provide more usability it is better to make some helper-method which takes a file path or web link to avoid reading data manually.

    enhancement help wanted 
    opened by vityafx 0
  • Fully implement structures

    Fully implement structures

    Some fields of structures are not implelemented due to the lack of information on the api.challonge.com web-site or due to the lack of time :)

    Tournament:
        // category: ??,
        // <signup-cap nil="true"/>
        // <start-at nil="true"/>    
        // <started-checking-in-at nil="true"/>
        // <state>underway</state>
    
        // <tie-breaks type="array">
        // <tie-break>match wins vs tied</tie-break>
        // <tie-break>game wins</tie-break>
        // <tie-break>points scored</tie-break>
        // </tie-breaks>
    
        // <subdomain nil="true"/>
        // <sign-up-url nil="true"/>
    
    
    Match:
        // attachment_count: ,
        // group_id: ,
        // location: 
        // scheduled_time:
        // underway_at: 
    
    
    enhancement help wanted 
    opened by vityafx 0
Owner
Victor Polevoy
C/C++/Rust systems and application developer, Certified Scrum Professional (CSP).
Victor Polevoy
The Safe Network Core. API message definitions, routing and nodes, client core api.

safe_network The Safe Network Core. API message definitions, routing and nodes, client core api. License This Safe Network repository is licensed unde

MaidSafe 101 Dec 19, 2022
Modrinth API is a simple library for using Modrinth's API in Rust projects

Ferinth is a simple library for using the Modrinth API in Rust projects. It uses reqwest as its HTTP(S) client and deserialises responses to typed structs using serde.

null 20 Dec 8, 2022
Acts as an IRC server and a nostr client. Connect with your IRC client using your nostr private key as the password.

nostr-irc Acts as an IRC server and a nostr client. Connect with your IRC client using your nostr private key as the password. Experimental code, use

null 11 Dec 26, 2022
A rust client and structures to interact with the Clever-Cloud API.

Clever-Cloud Software Development Kit - Rust edition This crate provides structures and client to interact with the Clever-Cloud API. Status This crat

Clever Cloud 6 Jun 3, 2022
Proxy copilot api to openai's gpt-4 api

Proxying Copilot API to OpenAI's GPT-4 API Usage Start the Server export GHU_TOKEN=ghu_xxxx; ./copilot2chat Or sh start.sh start # start the server th

Smark 3 Dec 6, 2023
This is a UPnP client library for Rust.

UPnP Client This is a UPNP client library for Rust. Usage Add this to your Cargo.toml: [dependencies] upnp-client = "0.1" Example This example will pr

Tsiry Sandratraina 7 Feb 20, 2023
SOCKS5 implement library, with some useful utilities such as dns-query, socks5-server, dns2socks, udp-client, etc.

socks5-impl Fundamental abstractions and async read / write functions for SOCKS5 protocol and Relatively low-level asynchronized SOCKS5 server impleme

null 5 Aug 3, 2023
A library-first, lightweight, high-performance, cloud-native supported API gateway🪐 by RUST

Preview version, will not guarantee the stability of the API! Do NOT use in production environment! A library-first, lightweight, high-performance, cl

Ideal World 4 May 7, 2023
FTP client for Rust

rust-ftp FTP client for Rust Documentation rust-ftp Installation Usage License Contribution Development environment Installation FTPS support is achie

Matt McCoy 155 Nov 12, 2022
NNTP client for Rust

rust-nntp NNTP Client for Rust Usage extern crate nntp; use nntp::{Article, NNTPStream}; fn main() { let mut nntp_stream = match NNTPStream::connec

Matt McCoy 13 Jan 22, 2022
POP3 client for Rust

rust-pop3 POP3 Client for Rust This client has SSL support. SSL is configured using an SSLContext that is passed into the connect method of a POP3Stre

Matt McCoy 26 Dec 19, 2022
A STOMP client in Rust. Compatible with RabbitMQ, ActiveMQ.

stomp-rs stomp-rs provides a full STOMP 1.2 client implementation for the Rust programming language. This allows programs written in Rust to interact

Zack Slayton 84 Dec 4, 2022
Rust client for NATS, the cloud native messaging system.

A Rust client for the NATS messaging system. Status Motivation Rust may be the most interesting new language the NATS ecosystem has seen. We believe t

NATS - The Cloud Native Messaging System 651 Jan 3, 2023
rqbit - bittorrent client in Rust

rqbit - bittorrent client in Rust

Igor Katson 177 Jan 2, 2023
Filen.io is a cloud storage provider with an open-source desktop client.

Library to call Filen.io API from Rust Filen.io is a cloud storage provider with an open-source desktop client. My goal is to write a library which ca

Konstantin Zakharov 5 Nov 15, 2022
Simple project to test grpc between ruby (client) and rust (server)

grpc-example Simple project to test grpc between ruby (client) and rust (server). Usage To simplify a lot this project uses docker and docker compose

Bruno Arueira 2 Oct 14, 2021
Third party Google DNS client for rust.

google-dns-rs Documentation Install Add the following line to your Cargo.toml file: google-dns-rs = "0.3.0" Usage use google_dns_rs::api::{Dns, DoH, R

Eduardo Stuart 2 Nov 13, 2021
A tcp proxy server/client which exchange the data in temp files

ftcp A tcp proxy server/client which exchange the data in temp files 通过在临时文件中交换数据来进行TCP代理的一个服务端/客户端 学校内网中有针对教学楼的防火墙导致教室电脑难以上网( 但学校内建有公共ftp服务器,因此就有了这个借

Daile Liu 2 Feb 17, 2022
A mini async telnet client.

mini-telnet A mini async telnet client.

kolapapa 15 May 5, 2022