A web browser in Roblox.
This uses an HTTP server (written in Rust) which uses the Chrome devtools protocol (through the headless_chrome) crate. It will start a browser, create a tab, and start a screencast. Each frame of the screencast is split into chunks, we then compare the chunks of the new frame and old frame. Any chunks that are changed, are sent over the wire using a custom binary protocol.
On the Roblox side of things, we repeatedly poll the server using long-polling in order to get new data. We then decode any chunks we get and update the EditableImage. We also send input events to the server.
You can download prebuilt binaries and place files from the latest release.
All you need to do is run the binary and open the Roblox place in Roblox Studio and press play!
To build the Rust server and the Roblox place from source, you need the following prerequisites:
cargo build --release
The binary will be at target/release/roblox_browser.exe
or
target/release/roblox_browser
.
# install necessary tools
aftman install
# run build
lune run build-roblox
The rbxl
file will be at roblox/build/browser.rbxl
.