Skip to main content

Hardware-accelerated Linux virtual desktops.

Project description

Bounce Desktop

Bounce Desktop is a cpp library and python package for starting and interacting with lightweight hardware-accelerated virtual desktops. It does this by running VNC-backed Weston sessions and then connecting to them with a VNC client.

I've written Bounce Desktop to serve as a desktop platform for my RL with Games framework: BounceRL.

Dependencies

poetry, libvncserver (optional), gmock, gtest, libgvnc (from gtk-vnc)

Getting started

If you want just want the python package, you'll first need to install the system dependencies listed above. Then you can run this pip command:

pip install bounce_desktop

Usage

I don't have docs or clear examples handy, but for starter pointers, see: src/desktop/client.h, bounce_desktop/bounce_desk_test.py, and src/bindings/client_exe.h.

Limitations

Running multiple desktops from a single process isn't supported yet. I'd like to support this use case, but there are some threading details to work through in the libgvnc client and SDL viewer. Until then, if you do want to test the threaded set up, pass in "true" to the the "allow_unsafe" arg for the client or viewer.

Roadmap

This project's being developed to support BounceRL, so I'll be focusing development toward that project's needs. With that said, I do think there's value in having a lightweight virtual desktop library available, and I do think one could develop this project toward that goal if they're interested.

I also think this project should be close to feature complete at this point, I may at some point integrate the prototyped, but unused, subprocess reaper into the desktop class, so that callers can get guaranteed process clean-up, but we'll see if or when I need that feature.

Contributing

I don't plan on accepting pull requests in the near term, but I'll take a look at any issues or feature requests you open.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

bounce_desktop-0.3.0-cp314-cp314-manylinux_2_35_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ x86-64

bounce_desktop-0.3.0-cp313-cp313-manylinux_2_35_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

bounce_desktop-0.3.0-cp312-cp312-manylinux_2_35_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

bounce_desktop-0.3.0-cp311-cp311-manylinux_2_35_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

bounce_desktop-0.3.0-cp310-cp310-manylinux_2_35_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

File details

Details for the file bounce_desktop-0.3.0-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for bounce_desktop-0.3.0-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 83ce2bc7e893512e1f20b93b2fabd34b6e7a39d40ca6fe7c3cbd2d09979e907f
MD5 0228152f14bcc732338081bd54c1a393
BLAKE2b-256 775062f9d324b264fdf2008ed8ce463be94e9980aa44fea50f23d6302e866df4

See more details on using hashes here.

File details

Details for the file bounce_desktop-0.3.0-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for bounce_desktop-0.3.0-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 a6ef0688033df96a554c48195643c89a09b95af63ea1e1134aa61befe2bd53e3
MD5 757637161fe20d57348d1f869fd8eb49
BLAKE2b-256 00a71badb396e877db2341780b81816436087ffd1c57da45ddb37401437bdeba

See more details on using hashes here.

File details

Details for the file bounce_desktop-0.3.0-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for bounce_desktop-0.3.0-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 fcc0e9ff9b6a531f400664bedc02d354d2816cc579da8f98a80d0643d17eb43f
MD5 549f6458c207404c704b8d948d15970b
BLAKE2b-256 2a1d3843df91304cac6d172ed590d92a905887ec5dc0c66ec96ce964f04f5200

See more details on using hashes here.

File details

Details for the file bounce_desktop-0.3.0-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for bounce_desktop-0.3.0-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 cd20a9632d429e81717789573b0f43a6be3210004ccf45cf23dcb6fda1142255
MD5 452dacb73b9b0505d6c3defe12e6482a
BLAKE2b-256 a1ba2efd8a0c29a3dd9fb06cc75c365ed614ff3ac13679a8a5143beb3d776146

See more details on using hashes here.

File details

Details for the file bounce_desktop-0.3.0-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for bounce_desktop-0.3.0-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 31fad7a519259a78a1101080e5f0c91d3664ed39921d000307f95b2f96715953
MD5 f204c95ed3036fe82035a1e5381b6cfb
BLAKE2b-256 5bd95b7a844ecab8050143d08a011d680c0d83d9f40ed3d374c39ece3735a10f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page