
Implements the EnergyNet Protocol stack: session management with handshake enforcement, CBOR message serialization, frame encoding/decoding, TCP/TLS transports, plus high- and low-level modules for building nodes.
A Kotlin Multiplatform library for implementing the EnergyNet Protocol (EP) — an open protocol for energy transfer coordination between devices such as EVs, chargers, and energy routers.
KENETH provides:
KENETH provides modules at several levels of abstraction. You can use whichever is appropriate for your project. From the most low-level, transport adjacent to the most high-level/abstracted, they are:
Server classes that manage incoming & outgoing peer connections, and message publishing. EpNode provides the "brain
stem"
for an EnergyNet node. This is the highest-level abstraction, intended for building EnergyNet applications.
Browser-based demos and tools. Compiles the above modules to JavaScript via Kotlin/JS and runs EP nodes entirely in the browser using in-memory transports. Deployed to breischl.dev.
Transport layer: MessageTransport and FrameTransport interfaces with TCP and TLS implementations. Handles frame
encoding/decoding and message parsing automatically.
Core EP library: typed value classes (Voltage, Current, Power, etc.), message models, CBOR serialization, and
frame encoding/decoding. Useful for testing, debugging, and as a building block.
All modules target JVM, JS (IR), and linuxArm64 via Kotlin Multiplatform. Platform-agnostic code lives in commonMain;
platform-specific implementations (TCP/TLS sockets, TCP accept loop) are in jvmMain.
See dev-docs/DEVELOPING.md for setup and practices. See CLAUDE.md for agent instructions.
A Kotlin Multiplatform library for implementing the EnergyNet Protocol (EP) — an open protocol for energy transfer coordination between devices such as EVs, chargers, and energy routers.
KENETH provides:
KENETH provides modules at several levels of abstraction. You can use whichever is appropriate for your project. From the most low-level, transport adjacent to the most high-level/abstracted, they are:
Server classes that manage incoming & outgoing peer connections, and message publishing. EpNode provides the "brain
stem"
for an EnergyNet node. This is the highest-level abstraction, intended for building EnergyNet applications.
Browser-based demos and tools. Compiles the above modules to JavaScript via Kotlin/JS and runs EP nodes entirely in the browser using in-memory transports. Deployed to breischl.dev.
Transport layer: MessageTransport and FrameTransport interfaces with TCP and TLS implementations. Handles frame
encoding/decoding and message parsing automatically.
Core EP library: typed value classes (Voltage, Current, Power, etc.), message models, CBOR serialization, and
frame encoding/decoding. Useful for testing, debugging, and as a building block.
All modules target JVM, JS (IR), and linuxArm64 via Kotlin Multiplatform. Platform-agnostic code lives in commonMain;
platform-specific implementations (TCP/TLS sockets, TCP accept loop) are in jvmMain.
See dev-docs/DEVELOPING.md for setup and practices. See CLAUDE.md for agent instructions.