Giter Club home page Giter Club logo

roommate's Introduction

Motivation

I started this project to create a library in rust to make bidirectional servers using webscokets. Keep in mind this library I made it in a way that would be very easy to start and create a server with the help of rust macros. My main goal was productivity and the easynest to work with this library. A popular library made in javascript I took as a reference is socket.io.

Note: I do not recommend to use this library for a production product until the performance of this one would be tested properly by side non critical projects.

Example

#[tokio::main]
async fn main(){
    room!{
        chat<MsgList>{
            MsgList::new(),
        
            get_messages => room, _data{
                let messages = room.get_state().messages.clone();
                room.whisper("messages", messages).await;
            },


            #[Msg]
            message => room, data{
                let state = room.get_mut_state();
                let message = data.unwrap();

                state.messages.push(message.clone());
                room.emit("message", message).await;
            }
        }
    }

    run_server!("192.168.1.118:8080", chat);
}

Note: To see this example more in depth you can go to this repository.


If you want to collaborate to this project, please feel free to write a message or to send me a pull request

roommate's People

Contributors

leonardojrr avatar

Watchers

James Cloos avatar  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.