No description
Find a file
modeco80 e0b12c9729 split the "C++ client bindings" properly
There probably isn't that much utility to doing this, but now the shared/ code can be imported to write a hazelnut client application in C++. Not that that's of any use to me, but seperating it means it should also be easier to work on. No more strange compile errors because clangd is confused and dumb.
2024-12-21 21:40:20 -05:00
agent remove useless stuff from agent's main 2024-12-03 03:45:20 -05:00
client split the "C++ client bindings" properly 2024-12-21 21:40:20 -05:00
shared split the "C++ client bindings" properly 2024-12-21 21:40:20 -05:00
testclient move client and test minifb client code to seperate crates 2024-12-02 17:01:21 -05:00
.clang-format clang-format 2024-11-20 21:29:22 -05:00
.gitignore move client and test minifb client code to seperate crates 2024-12-02 17:01:21 -05:00
README.md move client and test minifb client code to seperate crates 2024-12-02 17:01:21 -05:00

Hazelnut

A semi-prototype of CollabVM 3.0 agent functionality (specifically display).

Currently NVIDIA-specific (since we use NvFBC); support for DXGI duplication (for post Win7) should be added at some point.

The agent runs on Windows 7 x64 onwards. Lower (or x86) is currently not supported as a target.

The agent uses IVSHMEM to provide frames to the client in a low-latency fashion.

Later on virtio-serial may be considered for low-bandwidth additional functionality, like input. For now, however, the agent is display only.

This repository contains:

  • The agent. Written in C++20.
  • Shared headers and utility code, used between the agent and the client. Written in C++20, mostly so it can be shared between the agent and client.
  • A Rust crate for Hazelnut clients to use. Wraps the Shared code.
  • A test client written in Rust which displays the framebuffer (in a quick-and-dirty fashion.).