dart_rfb

Creator: coderz1093

Last updated:

0 purchases

dart_rfb Image
dart_rfb Images
Add to Cart

Description:

dart rfb

dart-rfb #
Implementation of The Remote Framebuffer Protocol (RFC 6143, aka VNC protocol).


Motivation #
We were searching a VNC viewer package for Flutter - without success.
Then there was a discussion about how complex the protocol is and wether we should implement it ourself.
Estimations ranged from 5 days to 100 days and we began joking that I'd be able to do it "after the weekend".
And here we are, after a weekend, with the first, minimal, protocol implementation.
Supported Features #
Protocol Versions #

✅ 3.3
✅ 3.7
✅ 3.8

Encodings #

✅ Raw
✅ CopyRect
⬜ RRE (obsolescent)
⬜ Hextile (obsolescent)
⬜ TRLE
⬜ ZRLE
⬜ Cursor pseudo-encoding
⬜ DesktopSize pseudo-encoding

Security Types #

✅ None
✅ VNC Authentication

Pixel Formats #

✅ BGRA8888 (https://api.flutter.dev/flutter/dart-ui/PixelFormat.html#bgra8888, 32 bits per pixel, true-color)

Protocol Messages #

✅ ProtocolVersion handshake
✅ Security handshake
✅ SecurityResult handshake
✅ ClientInit
✅ ServerInit
Client-to-Server

✅ SetPixelFormat
✅ SetEncodings
✅ FramebufferUpdateRequest
✅ KeyEvent
✅ PointerEvent
✅ ClientCutText


Server-to-Client

✅ FramebufferUpdate
⬜ SetColorMapEntries
⬜ Bell
✅ ServerCutText



Installation #
As simple as dart pub add dart_rfb.
Or manually add dart_rfb: ^<latest-version> to your pubspec.yaml.
Usage #
final RemoteFrameBufferClient client = RemoteFrameBufferClient()
await client.connect(
hostname: '127.0.0.1',
password: 'password',
);
client.updateStream.listen(
(final RemoteFrameBufferClientUpdate update) {
// Update your framebuffer
},
);
// To let the package handle incoming messages
client.handleIncomingMessages();
// Or handle yourself
StreamSubscription<RemoteFrameBufferClientReadMessage> subscription =
client.incomingMessages.listen(
(final RemoteFrameBufferClientReadMessage message) {
// Do something
},
);
// Request an initial framebuffer update
client.requestUpdate();
copied to clipboard
Learn More #
https://www.rfc-editor.org/rfc/rfc6143

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.