Skip to content
This repository was archived by the owner on Aug 19, 2026. It is now read-only.

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LunarView

LunarView is an intended open-source, cross-platform C++20 client for legacy AMI MegaRAC SP remote KVM consoles. Its goal is to replace the Java Web Start, JNLP runtime, JNI, and X11 dependencies required by the original JViewer.

Project status

The project now contains an experimental, raylib-independent lunarview-cli headless core. It performs the native MegaRAC web login, obtains and validates a fresh positional JNLP session, executes the matching IVTP handshake, performs bounded type-25 frame reassembly and SOC decoding, and writes RGBA PNG output. It does not invoke Java or JViewer.

The Stage 1 static analysis of the supplied legacy JViewer artifacts is documented under docs/protocol. The bounded, firmware-specific Stage 1R capture is documented in docs/research/runtime-validation.md. The pinned Stage 2 comparison with the independent Go reference is documented in docs/research/rd450x-console.md. The current C++ headless validation result is documented in docs/research/cpp-headless-validation.md.

The current lab BMC accepts the native C++ session, but produced no type-25 video packets during the tested sessions; the supplied original JViewer behaved identically. The cause remains under investigation. Consequently a real C++ screenshot and visual comparison are still pending. In accordance with the project manifest, the raylib GUI has not started and this is not yet a production-ready client.

Initial target platforms are Windows x86_64, Linux x86_64, and macOS x86_64. The design will remain portable to macOS arm64 and Linux arm64.

Repository boundaries

Legacy JViewer archives and native libraries live outside this repository and are research inputs only. They must not be modified, redistributed, staged, or committed. Decompiled proprietary sources and private packet captures are also excluded from version control.

Research verification

The read-only Stage 1 verifier checks the immutable legacy-input hashes, JAR inventories, required classes, embedded native-library copies, and repository boundary:

python3 research/scripts/verify_stage1_inputs.py
python3 research/scripts/verify_stage1_docs.py
python3 research/scripts/verify_stage2_docs.py
python3 -m unittest discover -s research/tests

Configure and test

For a clean macOS/Linux checkout, the bootstrap script downloads a pinned vcpkg toolchain and dependencies into the Git-ignored .local/ directory, then builds and runs all offline tests:

./scripts/bootstrap.sh

Windows uses scripts/bootstrap.ps1. System, explicit FetchContent, and fully offline dependency modes remain available. See the complete development setup and migration guide for prerequisites, clean-machine commands, and the safe GitHub transfer workflow.

Headless usage

./build/dev-vcpkg/lunarview-cli \
  --host HOST \
  --user USER \
  --screenshot frame.png \
  --http

The password is requested interactively and is never accepted in command-line arguments. Select --http only for a known legacy endpoint; the client emits a plaintext-transport warning. Use --https when the BMC supports modern TLS. Useful diagnostics are --verbose, --trace, and --timeout SECONDS.

Current hard limits are deliberate: the matching lab profile uses plain KVM TCP, while KVM-over-TLS and statically unresolved codec combinations fail closed instead of silently changing protocol behavior.

Licensing

LunarView is free software licensed under the GNU General Public License, version 3 or (at your option) any later version. See LICENSE.

Third-party components and research references retain their respective licenses. Proprietary JViewer artifacts, decompiled sources, and private captures are not part of the distributed project.

About

Modern cross-platform C++20 iKVM client for legacy AMI MegaRAC BMCs, with a native raylib GUI

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages