aboutsummaryrefslogtreecommitdiff
path: root/Cargo.toml
Commit message (Collapse)AuthorAgeFilesLines
* Release v0.5.8Zeyla Hellyer2018-08-121-1/+1
|
* Bump to v0.5.7Zeyla Hellyer2018-08-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a hotfix release for an incorrect warning about cache deadlocking during event dispatches in the client and fixing some routing method typos due to the HTTP rewrite. Thanks to the following for their contributions: - [@acdenisSK] - [@Lymia] - [@zeyla] Fixed - [client] Fix erroneous deadlock detection messages ([@Lymia]) [c:d1266fc] - [http] Fix some routing issues ([@zeyla]) [c:04b410e] Misc. - Slightly reword a cache update comment ([@acdenisSK]) [c:3a58090] [@acdenisSK]: https://github.com/acdenisSK [@Lymia]: https://github.com/Lymia [@zeyla]: https://github.com/zeyla [c:04b410e]: https://github.com/serenity-rs/serenity/commit/04b410ee75b2eb29f32e66fc137d3992a4972f1d [c:3a58090]: https://github.com/serenity-rs/serenity/commit/3a580909c489c328f3faa10741debd4b063e7fbd [c:d1266fc]: https://github.com/serenity-rs/serenity/commit/d1266fc3051a436f87a4778c5081c2228eb50b1c
* Bump to v0.5.6Zeyla Hellyer2018-08-071-1/+1
|
* Update license/Cargo emailZeyla Hellyer2018-07-281-1/+1
|
* Release v0.5.5Zeyla Hellyer2018-07-241-1/+1
|
* Bump to v0.5.4v0.5.4Zeyla Hellyer2018-06-071-1/+1
|
* Fix links to the repoZeyla Hellyer2018-05-231-2/+2
| | | | | Fixes links to the repo from `https://github.com/zeyla/serenity` to `https://github.com/serenity-rs/serenity`.
* Bump to v0.5.3v0.5.3Zeyla Hellyer2018-05-011-1/+1
|
* Bump to v0.5.2v0.5.2Zeyla Hellyer2018-04-141-1/+1
|
* Bump to v0.5.1v0.5.1Zeyla Hellyer2018-01-311-1/+1
|
* Fix compilation for some feature combinationsZeyla Hellyer2018-01-201-1/+1
|
* Update dependenciesZeyla Hellyer2017-12-241-5/+5
|
* Better support for multiple delimiters on `Args` (#239)Lakelezz2017-12-221-0/+3
|
* Revamp the internals of `Args`acdenisSK2017-12-161-5/+1
| | | | Fixes #180, however this partially breaks `single_zc` and `multiple_quoted`, but since they're minor it's better to fix them later for now.
* Update dependenciesZeyla Hellyer2017-11-221-3/+3
|
* docs.rs: compile all features for docsZeyla Hellyer2017-11-171-0/+3
|
* Redo client internals + gatewayZeyla Hellyer2017-11-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is a rewrite of the client module's internals and the gateway. The main benefit of this is that there is either 0 or 1 lock retrievals per event received, and the ability to utilize the ShardManager both internally and in userland code has been improved. The primary rework is in the `serenity::client` module, which now includes a few more structures, some changes to existing ones, and more functionality (such as to the `ShardManager`). The two notable additions to the client-gateway bridge are the `ShardMessenger` and `ShardManagerMonitor`. The `ShardMessenger` is a simple-to-use interface for users to use to interact with shards. The user is given one of these in the `serenity::client::Context` in dispatches to the `serenity::client::EventHandler`. This can be used for updating the presence of a shard, sending a guild chunk message, or sending a user's defined WebSocket message. The `ShardManagerMonitor` is a loop run in its own thread, potentially the main thread, that is responsible for receiving messages over an mpsc channel on what to do with shards via the `ShardManager`. For example, it will receive a message to shutdown a single shard, restart a single shard, or shutdown the entire thing. Users, in most applications, will not interact with the `ShardManagerMonitor`. Users using the `serenity::client::Client` interact with only the `ShardMessenger`. The `ShardManager` is now usable by the user and is available to them, and contains public functions for shutdowns, initializations, restarts, and complete shutdowns of shards. It contains utility functions like determining whether the `ShardManager` is responsible for a shard of a given ID and the IDs of shards currently active (having an associated `ShardRunner`). It can be found on `serenity::client::Client::shard_manager`. Speaking of the `ShardRunner`, it no longer owns a clone of an Arc to its assigned `serenity::gateway::Shard`. It now completely owns the Shard. This means that in order to open the shard, a `ShardRunner` no longer has to repeatedly retrieve a lock to it. This reduces the number of lock retrievals per event dispatching cycle from 3 or 4 depending on event type to 0 or 1 depending on whether it's a message create _and_ if the framework is in use. To interact with the Shard, one must now go through the previously mentioned `ShardMessenger`, which the `ShardRunner` will check for messages from on a loop. `serenity::client::Context` is now slightly different. Instead of the `shard` field being `Arc<Mutex<Shard>>`, it is an instance of a `ShardMessenger`. The interface is the same (minus losing some Shard-specific methods like `latency`), and `Context`'s shortcuts still exist (like `Context::online` or `Context::set_game`). It now additionally includes a `Context::shard_id` field which is a u64 containing the ID of the shard that the event was dispatched from. `serenity::client::Client` has one changed field name, one field that is now public, and a new field. `Client::shard_runners` is now `Client::shard_manager` of type `Arc<Mutex<ShardManager>>`. The `Client::token` field is now public. This can, for example, be mutated on token resets if you know what you're doing. `Client::ws_uri` is new and contains the URI for shards to use when connecting to the gateway. Otherwise, the Client's usage is unchanged. `serenity::gateway::Shard` has a couple of minor changes and many more public methods and fields. The `autoreconnect`, `check_heartbeat`, `handle_event`, `heartbeat`, `identify`, `initialize`, `reset`, `resume`, `reconnect`, and `update_presence` methods are now public. The `token` structfield is now public. There are new getters for various structfields, such as `heartbeat_instants` and `last_heartbeat_ack`. The breaking change on the `Shard` is that `Shard::handle_event` now takes an event by reference and, instead of returning `Result<Option<Event>>`, it now returns `Result<Option<ShardAction>>`. `serenity::gateway::ShardAction` is a light enum determining an action that someone _should_/_must_ perform on the shard, e.g. reconnecting or identifying. This is determined by `Shard::handle_event`. In total, there aren't too many breaking changes that most of userland use cases has to deal with -- at most, changing some usage of `Context`. Retrieving information like a Shard's latency is currently not possible anymore but work will be done to make this functionality available again.
* Fix the versionacdenisSK2017-10-241-1/+1
|
* Merge v0.4.2acdenisSK2017-10-241-3/+3
|\
| * Update dependenciesZeyla Hellyer2017-10-221-2/+2
| | | | | | | | | | | | | | Update the following dependencies: - `base64` from `~0.6` to `~0.7` - rust-websocket fork from `0.0.1` to `0.0.2`
| * Update 0.4.2's Cargo.toml version to 0.4.2 itself (#196)Chris2017-10-161-1/+1
| |
* | Fix some compilation feature targets, fix lintsZeyla Hellyer2017-10-171-5/+1
|/
* Release v0.4.1v0.4.1Zeyla Hellyer2017-10-141-1/+1
|
* Add a threadpool to the shard runnerZeyla Hellyer2017-10-091-0/+5
| | | | | | A threadpool will help with giving event dispatches a threaded behaviour while still allowing the library the ability to perform other actions, such as receiving new events and heartbeating over the websocket client.
* Help-commands filtering and Member-prefix-search (#182)Lakelezz2017-10-071-1/+1
|
* Switch to temporary rust-websocket forkZeyla Hellyer2017-09-251-4/+3
|
* Add a shard managerZeyla Hellyer2017-09-241-2/+4
| | | | The shard manager will queue up shards for booting.
* Downgrade sodiumoxide to v0.0.14Zeyla Hellyer2017-09-231-1/+1
| | | | This resolved compilation on stable.
* Update bitflags, other dependenciesZeyla Hellyer2017-09-211-4/+4
| | | | | | | | | | | | | | | | | | | | | | | Bitflags changed its macro codegen from creating constants to associated constants on structs. Upgrade path: Update code from: ```rust use serenity::model::permissions::{ADD_REACTIONS, MANAGE_MESSAGES}; foo(vec![ADD_REACTIONS, MANAGE_MESSAGES]); ``` to: ```rust use serenity::model::Permissions; foo(vec![Permissions::ADD_REACTIONS, Permissions::MANAGE_MESSAGES]); ```
* Remove tokio usageZeyla Hellyer2017-09-211-10/+0
|
* Fix compiles of a variety of feature combinationsZeyla Hellyer2017-09-181-8/+25
| | | | | This fixes compilation errors and warnings when compiling a mixture of non-default feature targets.
* Alphabetize Cargo.toml dependenciesZeyla Hellyer2017-09-181-4/+4
|
* Revamp the args to an `Args` structacdenisSK2017-08-201-9/+5
| | | | Fixes #142
* Use wildcardacdenisSK2017-08-191-1/+1
|
* Move builtin framework impl to its own moduleZeyla Hellyer2017-08-191-2/+2
| | | | | | | | | | | | | | | | | The framework is now moved in its entirity to the `framework` module, with the `Framework` trait currently on its own and the builtin implementation provided. The builtin implementation has been renamed to "Standard". Upgrade path: Rename the `BuiltinFramework` import to `StandardFramework`. Instead of importing builtin framework items from `serenity::framework`, import them from `serenity::framework::standard`. This is the beginning to #60. The root `framework` module (non-standard implementation) will be built more by the time it's closed.
* Add html_root_urlacdenisSK2017-08-191-1/+1
|
* `$crate_name` => `version`, and a few adjustementsacdenisSK2017-08-141-2/+2
|
* Fix string delimiters (#134)Lakelezz2017-08-131-1/+9
|
* Fix #130acdenisSK2017-07-221-3/+3
| | | | Removed action support from the builtin one as well, due to it adding some uneccassery complexity and it being only asked upon by one user
* Switch to tokio for events (#122)Alex Lyon2017-07-141-2/+13
|
* Update docs linksZeyla Hellyer2017-06-271-1/+1
|
* Update authors list in Cargo.tomlZeyla Hellyer2017-06-271-1/+1
|
* Bump to v0.3.0v0.3.0Zeyla Hellyer2017-06-241-1/+1
|
* Update dependenciesZeyla Hellyer2017-06-211-5/+5
|
* Remove unused cookie dependencyZeyla Hellyer2017-06-081-4/+0
|
* Upgrade rust-websocket, rust-openssl, and hyperZeyla Hellyer2017-06-071-4/+14
| | | | | | | | | | | | | | | | Upgrade `rust-websocket` to v0.20, maintaining use of its sync client. This indirectly switches from `rust-openssl` v0.7 - which required openssl-1.0 on all platforms - to `native-tls`, which allows for use of schannel on Windows, Secure Transport on OSX, and openssl-1.1 on other platforms. Additionally, since hyper is no longer even a dependency of rust-websocket, we can safely and easily upgrade to `hyper` v0.10 and `multipart` v0.12. This commit is fairly experimental as it has not been tested on a long-running bot.
* Use chrono for struct timestamp fieldsZeyla Hellyer2017-06-061-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Chrono is easier to use than timestamped strings, so they should be automatically deserialized and available for the user, instead of having the user deserialize the strings themselves. These fields have been changed to use a type of `DateTime<FixedOffset>`: - `ChannelPinsUpdateEvent.last_pin_timestamp` - `Group.last_pin_timestamp` - `Guild.joined_at` - `GuildChannel.last_pin_timestamp` - `Invite.created_at` - `Member.joined_at` - `Message.edited_timestamp - `Message.timestamp` - `MessageUpdateEvent.edited_timestamp` - `MessageUpdateEvent.timestamp` - `PrivateChannel.last_pin_timestamp` `Member.joined_at` is now also an `Option`. Previously, if a Guild Member Update was received for a member not in the cache, a new Member would be instantiated with a default String value. This is incorrect behaviour, and has now been replaced with being set to `None` in that case. Id methods' `created_at()` method now return a `chrono::NaiveDateTime` instead of a `time::Timespec`, and `User::created_at` has been updated to reflect that. Additionally, drop `time` as a direct dependency and use chrono for internals.
* Restructure modulesZeyla Hellyer2017-05-221-9/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modules are now separated into a fashion where the library can be used for most use cases, without needing to compile the rest. The core of serenity, with no features enabled, contains only the struct (model) definitions, constants, and prelude. Models do not have most functions compiled in, as that is separated into the `model` feature. The `client` module has been split into 3 modules: `client`, `gateway`, and `http`. `http` contains functions to interact with the REST API. `gateway` contains the Shard to interact with the gateway, requiring `http` for retrieving the gateway URL. `client` requires both of the other features and acts as an abstracted interface over both the gateway and REST APIs, handling the event loop. The `builder` module has been separated from `utils`, and can now be optionally compiled in. It and the `http` feature are required by the `model` feature due to a large number of methods requiring access to them. `utils` now contains a number of utilities, such as the Colour struct, the `MessageBuilder`, and mention parsing functions. Each of the original `ext` modules are still featured, with `cache` not requiring any feature to be enabled, `framework` requiring the `client`, `model`, and `utils`, and `voice` requiring `gateway`. In total the features and their requirements are: - `builder`: none - `cache`: none - `client`: `gateway`, `http` - `framework`: `client`, `model`, `utils` - `gateway`: `http` - `http`: none - `model`: `builder`, `http` - `utils`: none - `voice`: `gateway` The default features are `builder`, `cache`, `client`, `framework`, `gateway`, `model`, `http`, and `utils`. To help with forwards compatibility, modules have been re-exported from their original locations.
* Bump to v0.2.0v0.2.0Zeyla Hellyer2017-05-131-1/+1
|
* Upgrade base64 dependencyZeyla Hellyer2017-05-131-1/+1
|