Skip to content

pleonard/loop-development-kit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Loop Development Kit

This is the central repository for all the Olive Help LDKs. You'll probably want to look at the individual LDK readmes in the ldk\{language} folder.

Developing

LDK Contract

Each LDK must adhere to this contract:

  • They should start a GRPC server serving the following services:
    • proto.Loop
    • plugin.Broker
    • plugin.Stdio
  • When started up they write to STDOUT a connection string in the following format: 1|1|tcp|{HOST}:{PORT}|grpc.
  • They do not write anything else to STDOUT until the Go LDK LoopClient calls the proto.Loop.LoopStart rpc.
  • The LoopStart rpc should complete once the Loop is started, it should not wait until the Loop is complete.
  • Their logger should write to STDERR single line JSON objects with the following properties:
    • @timestamp - The current timestamp in the format yyyy-MM-ddTHH:mm:ss.ffffffzzz. Seconds to the 6th decimal point is required, otherwise the logger will fail to parse the message and will log the JSON to the logs.
    • @level - The logging level (one of TRACE, DEBUG, INFO, WARN, ERROR)
    • @module - The name of the module, usually the loop name.
    • @pid - The Loop's process ID.
    • @message - The message to log.
    • and other properties as appropriate.

About

All Loop Development Kits for Olive Helps.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 54.7%
  • Go 18.7%
  • TypeScript 13.6%
  • C# 11.2%
  • Makefile 1.8%