GithubHelp home page GithubHelp logo

johnnysaucepn / subetha Goto Github PK

View Code? Open in Web Editor NEW
10.0 2.0 0.0 4.24 MB

Tools and NuGet packages for parsing and consuming Elite: Dangerous Player's Journal log events, allowing the creation of new tools for tracking player progress.

License: MIT License

C# 100.00%
elite dangerous elite-dangerous journal-events

subetha's Introduction

README

SubEtha for Elite: Dangerous

AppVeyor build status AppVeyor tests Coverlet code coverage

At its core, this is a set of .NET (Standard/Core) packages and tools for parsing and consuming Elite: Dangerous Player's Journal log events, allowing the creation of new tools for tracking player activity.

The intent is to free developers from the burden of maintaining repetitive parsing and processing code, particularly when new iterations of the journal spec are published.

Layered upon this, there are standalone sample tools that illustrate the use of these packages and offers a re-usable architecture to add new capabilities - this should provide a starter kit for developing journal-based apps.

Howatworks.SubEtha.Journal

This contains only C#-serializable representations of Elite: Dangerous journal entry types, as listed in the official documentation. This library has no dependencies on any logging or JSON-parsing libraries. Where there are discrepancies between the generated logs and the documentation, this is noted in the source.

Howatworks.SubEtha.Parser

Taking a step up from the raw data types, this allows the creation of readers for individual log files (both the ongoing rolling files and the constantly-replaced files such as status.json) and the ability to retrieve the structured data types on demand.

Howatworks.SubEtha.Monitor

This is a higher level again, providing a fully-operational file monitor that will track the core log files for updates, and trigger events that your application can process however it wishes. In addition, it exposes these updates as a sequence using Reactive Extensions.

Howatworks.SubEtha.Bindings

This contains structured data types for the various game control bindings, and methods to access that information per device.

Installation

You can get started by consuming the NuGet packages in your own projects, or by building and running the sample apps.

Build the packages using Visual Studio 2019+, or at the command line using:

dotnet tool restore
dotnet cake

Dependencies

SubEtha and associated tools make use of the following libraries and applications:

  • log4net
  • GitVersion for semantic versioning
  • Newtonsoft.Json for journal serialization
  • xUnit.net for testing

Release History

  • 0.1
    • First public release
  • 0.5
    • Rearchitected to use Reactive Extensions (Rx) to simplify data flow
  • 0.7
    • Migrated apps to separate repository
  • 0.8
    • Removed dependency on log4net for libraries

Distributed under the MIT license. See LICENSE.md for more information.

subetha's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar jhowat-optos avatar johnnysaucepn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

subetha's Issues

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.