Git Product home page Git Product logo

spectacles-rs's Introduction

Spectacles Rust

A library for creating powerful, fast, and scalable Discord applications and services.

Introduction

Spectacles is a service which allows for creating components which interact with the Discord API using a microservices-like architecture. All components are usually unified through a message brokering system, which means they can be fully distributed (spread out across servers).

Imagine the following: You want to push a major update in your bot, but you fear the downtime that it would bring. With Spectacles, you can have your application split up into "workers", each of whom will consume Discord events from the message broker. So if you take down one worker to update it, the other worker can still receive events, thus achieving zero downtime.

The microservices architecture is also very beneficial in the sense that you can scale your bot's components with ease. If your two workers are receiving a lot of load, simply add a third worker, for improved load balancing. If you so choose, you may even have your bot use different programming languages for each service. For example, you could have your gateway in Rust, and your workers in Golang. They will all come together with help from the message broker.

Getting started

This library features several important crates to help you get started.

Spedctacles Brokers - Message brokers which allow for powerful communication between services. Spectacles Client - A standalone binary for Spectacles, which includes a Discord gateway and an event publishing system.

Spectacles Gateway - A Spectacles gateway implementation for Discord with enables stateless sharding.

Spectacles Models - A collection of data types than are used for serializing and deserializing data from the Discord API.

Spectacles REST - A Spectacles implementation of Discord's REST API methods.

See each crate for more details on how to get started with your application.

spectacles-rs's People

Contributors

azure-pipelines[bot] avatar texlo-dev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.