GithubHelp home page GithubHelp logo

styx's Introduction

Styx

Pull request statistics Issue statistics Build Status

Project status: development.

Protocol

Server and client uses custom protocol based on protobuf. To generate protobuf code for client and server, use styx-messages/Build-Protobuf.ps1 file.

Server

Styx server is written in Scala. It listens on 6060 port (default) for incoming client connections.

Running

To run the server, install sbt and use

$ sbt run

Client

For now, the only client is Miranda NG plugin.

Building

Compiler

Current client code is compatible only with MSVS IDE.

Libraries

You'll need a boost logging library.

Process

First of all, if you not plan to debug your code inside IDE, you're free to disable the post-build action. Then, build projects as always.

Using

Copy *.dll and *.pdb files to folder Miranda/Plugins. Start Miranda and use main menu command Enable Styx.

styx's People

Contributors

fornever avatar

Watchers

 avatar  avatar  avatar  avatar

styx's Issues

HTTP implementation

There should be a simple HTTP service to get all messages and/or their hashcode in time period. Maybe I'll want to use something like Swagger for protocol documenting.

New synchronization protocol

Let's try next approach to message synchronization.

Use server and client-based timestamps for input and output data.

Update documentation

The documentation in this repository should document only server (I could add some notes about possible client implementation though or even link a current "reference" Miranda client).

Database migration

Use something like Flyway or Liquibase for database migration support.

Message saving

Implement server-side message saving (use a database).

Travis integration

According to General Forneverian Specification on Source Template Constructs we should set up open unit testing system.

Naming convention

Need to set up some naming convention. For example:

  • call all client -> server messages as Request;
  • call all server -> client messages as Response;
  • call all MessageType values appropriately.

MessageType enum should not be placed into same package as defined types.

Update Scala version

The project should use the latest stable Scala version (2.11.5 currently I think).

User management

Need to implement server-side security and user management.

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.