Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #13 +/- ##
==========================================
- Coverage 42.93% 38.21% -4.73%
==========================================
Files 63 71 +8
Lines 4297 4828 +531
==========================================
Hits 1845 1845
- Misses 2216 2747 +531
Partials 236 236 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR introduces libVIIPER, a CGO-based shared library build of VIIPER with a C ABI for embedding the USB/USBIP stack into other applications, alongside updated docs, build tooling, and examples.
Changes:
- Add
libVIIPERC-shared build target (DLL/SO), version resources, and a postbuild step to inject exported-function docs into the generated header. - Implement a C-exported API for server/bus lifecycle and virtual devices (Xbox360, DualShock4, keyboard, mouse) including optional localhost auto-attach and output callbacks.
- Update documentation site/nav and examples (C and C#), and bump C# generator/examples to newer .NET target.
Reviewed changes
Copilot reviewed 35 out of 35 changed files in this pull request and generated 28 comments.
Show a summary per file
| File | Description |
|---|---|
| versioninfo.json | Update copyright year range for executable metadata. |
| scripts/install.ps1 | Change Windows USBIP driver detection/install logic to versioned installer flow. |
| mkdocs.yml | Update docs navigation and MkDocs theme config (currently broken indentation). |
| lib/viiper/viiper.go | Core types/helpers for c-shared package (currently missing cgo preamble for import "C"). |
| lib/viiper/server.go | Exported USB server lifecycle + log callback plumbing. |
| lib/viiper/bus.go | Exported bus create/remove functions for libVIIPER. |
| lib/viiper/xbox360.go | Exported Xbox 360 device API + rumble callback. |
| lib/viiper/dualshock4.go | Exported DualShock 4 device API + output callback. |
| lib/viiper/keyboard.go | Exported HID keyboard API + LED callback. |
| lib/viiper/mouse.go | Exported HID mouse API. |
| lib/viiper/versioninfo.json | Windows resource metadata for libVIIPER DLL. |
| lib/viiper/postbuild/main.go | Postbuild tool that injects Go export comments into generated C header docs. |
| internal/server/api/handler/bus_create.go | Minor comment cleanup. |
| internal/codegen/generator/csharp/project.go | Update generated C# client TargetFramework. |
| examples/libVIIPER/C/CMakeLists.txt | Add C example build (currently has incorrect dist path and likely missing libm link). |
| examples/libVIIPER/C/main.c | Add C example usage of libVIIPER (currently not portable due to _sleep and has uintptr_t printf issue). |
| examples/libVIIPER/csharp/libVIIPER_example.csproj | Add C# example project consuming libVIIPER artifacts. |
| examples/libVIIPER/csharp/Program.cs | Add C# P/Invoke example for libVIIPER. |
| examples/libVIIPER/csharp/.gitignore | Ignore build outputs for new example. |
| examples/csharp/virtual_x360_pad/VirtualX360Pad.csproj | Bump TargetFramework. |
| examples/csharp/virtual_mouse/VirtualMouse.csproj | Bump TargetFramework. |
| examples/csharp/virtual_keyboard/VirtualKeyboard.csproj | Bump TargetFramework. |
| docs/libviiper/overview.md | Add libVIIPER overview docs and examples. |
| docs/index.md | Update landing page to present server vs libVIIPER options. |
| docs/getting-started/installation.md | Split installation docs by “VIIPER Server” vs “libVIIPER”. |
| docs/devices/xbox360.md | Add libVIIPER API section (currently contains ABI/constant-name mismatches). |
| docs/devices/dualshock4.md | Add libVIIPER API section. |
| docs/devices/keyboard.md | Add libVIIPER API section. |
| docs/devices/mouse.md | Add libVIIPER API section (currently constant-name mismatches). |
| docs/clients/csharp.md | Update stated .NET target. |
| README.md | Update top-level readme to include libVIIPER and new FAQ wording (typos present). |
| Makefile | Add libVIIPER build target and resource cleanup paths. |
| .vscode/settings.json | Set CGO_ENABLED=1 for Go tools in VS Code. |
| .github/workflows/generate-changelog.yml | Minor cleanup in changelog workflow script block. |
| .github/scripts/generate-changelog.sh | Remove changelog title line from generated output. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Alia5
force-pushed
the
libVIIPER
branch
2 times, most recently
from
April 28, 2026 18:03
6a6d797 to
22269c3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.