Code Monkey home page Code Monkey logo

kheos's Introduction

kheos

Codacy Badge CircleCI Coverage Status Maven Central License

A Kotlin implementation of HEOS API Spec.

Why

For unknown reason, HEOS decided to go with plain socket which is anything than being modern (despite that many commands do return JSON!)

The goal of this project is to add an gRPC interface to make it easier interacting with HEOS from other services. And of course we need common models, core lib, service and client to make it complete.

Usage

Prerequisite

JDK8 and Maven.

To build

$ git clone [email protected]:honnix/kheos.git
$ mvn package

This gives you a Docker image as bonus that you can ship directly, or you can use a pre-built image here.

To start the service:

$ java -jar kheos-service/target/kheos-service.jar

Or

docker run -d honnix/kheos-service:<tag>

By default the service listens on 8888 and can be configured by env GRPC_PORT.

Use KHEOS_HEOS_HOST to configure where to find your HEOS.

For details and other configurations, refer to application.conf.

To start hacking

Import the maven project to IntelliJ (it works nicer with Kotlin, of course) and start sending PRs!

kheos-proto

The place where all protobuf files are stored.

kheos-common

This module contains mostly data classes and utilities.

kheos-lib

This module contains core libraries that connect to HEOS, send heartbeat and commands, and discover HEOS speakers.

Test cases are the best place to get a quick idea how to use the lib.

kheos-service

This module exposes gRPC interface to interact with HEOS.

kheos's People

Contributors

codacy-badger avatar honnix avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

kheos's Issues

Let's do grpc

I'm enough with all those service and client boilerplate.

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.