An online version of the popular game four in a row, written in Rust on the server side and Flutter + Dart on the client.

Overview

Four in a Row - Server

Screenshot of main screen

An online version of the popular game four in a row, written in Rust on the server side and Flutter + Dart on the client.

Download here: https://play.google.com/store/apps/details?id=ml.fourinarow

Or play online (beta): https://play.fourinarow.ml/

Related Projects:

Features:

  • world wide online play
  • over 4000 downloads
  • account creation, friends system
  • beautiful, minimalist design
  • subtle animations
  • request to battle your friends
  • local mode: two players - one device

Under the hood:

  • reliable websocket connection
  • message delivery guarantee
  • message reordering on client and server side
  • clean architecture: state and view completely separate
  • automatic reconnection

Screenshot of play selection

Screenshot of play

You might also like...
A multi-connection TCP reverse proxy server and client.

tprox A multi-connection TCP reverse proxy. The tprox server is able to proxy multiple incoming connections to the tprox client over a single TCP conn

Dav-server-rs - Rust WebDAV server library. A fork of the webdav-handler crate.

dav-server-rs A fork of the webdav-handler-rs project. Generic async HTTP/Webdav handler Webdav (RFC4918) is defined as HTTP (GET/HEAD/PUT/DELETE) plu

A minimalist socket-based client/server in Rust to illustrate a tutorial

The basics of unix sockets This repository serves as a reference for this tutorial blogpost How to run Install Rust and Cargo, and then do: cargo run

axum-server is a hyper server implementation designed to be used with axum framework.

axum-server axum-server is a hyper server implementation designed to be used with axum framework. Features Conveniently bind to any number of addresse

Jex Compiler Server - Server that runs Jex code

Server that compiles and runs Jex code.

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服务器,因此就有了这个借

Client-server architecture for Bevy

Sabi Opinionated client-server architecture for Bevy Goals: Prediction based on inputs Replication by a simple derive and adding a system to server/cl

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

easy to use version controll

Verzcon To start off you need to know are you the server or the client Server If you are the server then you should run verzcon --host then it will ma

Comments
  • Migrate MongoDB driver from sync to async

    Migrate MongoDB driver from sync to async

    • make all database functions async
    • wrap calls in MessageHandlers to async functions with .into_actor() and Box::pin()
    • Add ReadyForGameRequest and -Response to make sure clients don't block the queue
    • remove MsgOkay -> always assume auto-successful confirmation and else server (should) send error
    • fix bugs
    • more constants
    • resolve some TODOs and warnings
    opened by ffactory-ofcl 0
Releases(v1.3.0+17)
  • v1.3.0+17(Nov 7, 2021)

    • Migrate mongodb to async and tokio runtime -> use async wherever possible
    • Server communication protocol version: 4
    • Add ReadyForGameRequest and -Response
    • Remove MsgOkay -> default to success and rely on ReliabilityLayer
    • Use ApiError everywhere instead of strings
    • Fix bugs
    • Add more constants
    • Add logging
    Source code(tar.gz)
    Source code(zip)
Owner
Filippo Orrù
Filippo Orrù
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
QUIC proxy that allows to use QUIC to connect to an SSH server without needing to patch the client or the server.

quicssh-rs ?? quicssh-rs is a QUIC proxy that allows to use QUIC to connect to an SSH server without needing to patch the client or the server. quicss

Jun Ouyang 18 May 5, 2023
MASQ Network 121 Dec 20, 2022
RDE1 (Rusty Data Exfiltrator) is client and server tool allowing auditor to extract files from DNS and HTTPS protocols written in Rust. 🦀

Information: RDE1 is an old personal project (end 2022) that I didn't continue development on. It's part of a list of projects that helped me to learn

Quentin Texier (g0h4n) 32 Oct 6, 2023
A skyline mod that enables manual choosing of desired input latency in Smash Ultimate, compatible with every online mode.

Latency Slider (Definitive Edition) This is a fork of - and an improvement upon - the original "Arena Latency Slider". Unfortunately, upon SSBU updati

null 8 Mar 5, 2024
DNS Server written in Rust for fun, see https://dev.to/xfbs/writing-a-dns-server-in-rust-1gpn

DNS Fun Ever wondered how you can write a DNS server in Rust? No? Well, too bad, I'm telling you anyways. But don't worry, this is going to be a fun o

Patrick Elsen 26 Jan 13, 2023
A simple web server(and library) to display server stats over HTTP and Websockets/SSE or stream it to other systems.

x-server-stats A simple web server(and library) to display server stats over HTTP and Websockets/SSE or stream it to other systems. x-server(in x-serv

Pratyaksh 11 Oct 17, 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
A Rust based DNS client, server, and resolver

Trust-DNS A Rust based DNS client, server, and Resolver, built to be safe and secure from the ground up. This repo consists of multiple crates: Librar

Benjamin Fry 2.7k Dec 30, 2022
Conway Game of Life plus WebAssembly and basic HTTP Server

Conway Game of Life plus WebAssembly and basic HTTP Server How to run First, you have to choose what server do you want to use for hosting the wasm ga

Lambdaclass 8 Sep 6, 2022