bpeikes
bpeikes

Reputation: 3695

HTML5/javascript X11 server?

We have an application which consumes a large amount of data. Currently a desktop app, but we would like to deliver it via the browser.

It doesn't make sense to me to create a web app where we need to transfer a ll the data used for the visualizations.

We're looking at RDP and some products out there that provide RDP access via a fully javascript client. They seem to work well with our app, but I've been thinking about what it would take to move off Windows.

Switching the front end so that it could run under Linux would not be trivial, but not impossible, so the main stumbling block would be delivery.

I was wondering if there are any X11 javascript servers out there, but have not found any leads.

Upvotes: 21

Views: 26558

Answers (8)

Marek Mosiewicz
Marek Mosiewicz

Reputation: 1

I think it could be worth try to compile C X server to WebAssembly

Upvotes: 0

totaam
totaam

Reputation: 1311

Use xpra's builtin html5 client, it supports any application you can run on an X11 desktop.

Upvotes: 13

nintyfan
nintyfan

Reputation: 444

You can ever run full Linux distribution in Web Browser, but that's require to run x86/ARM emulator and GNU/Linux inside it. It provides X server with possible web connection too.

Upvotes: 1

Andrey Sidorov
Andrey Sidorov

Reputation: 25456

I know two, both at very infancy:

https://github.com/GothAck/javascript-x-server

and

https://github.com/ttaubert/x-server-js

Both need simple tcp-to-websockets proxy in front, but all X11 logic happen inside web page and all x11 objects exist and interact within browser (so it's not just remote framebuffer but real server)

Upvotes: 3

jo-erlend
jo-erlend

Reputation: 113

Sounds like the easiest approach for you is to get xrdp, which is an RDP-server for X. Then you would use your RDP client to connect to it. I think Nomachine NX supports html directly now, but I'm not sure. There was talk of an html X2go-client, but I don't know anything about that either.

Upvotes: 0

nintyfan
nintyfan

Reputation: 444

For very simple applications you can use libgreattao toolkit and tao-network-client to connect to it. I'm the author of both project. The API isn't yet frozen, but it rather behaves stable. You can read about it here: https://nintyfan.wordpress.com/2015/04/30/server-buildin-into-libgreattao-and-tao-network-client/

It can provide some problems with applications with a lot of data, because all elements must be send to client, when it were created, but instead we don't send full graphics(only icons is send) and user interface could be changed quickly. It also don't support mouse enter/leave/move events.

I must tell: do not download tarbar, but download version from svn.

Upvotes: 0

SheetJS
SheetJS

Reputation: 22925

You can use an HTML5 VNC viewer like https://github.com/kanaka/noVNC coupled with a VNC server like RealVNC

Upvotes: 5

AFAIK, recent GTK has been ported to HTML5+Javascript in Gtk Broadway

And you could make your application a web application, for instance by using Wt, or by making it an HTTP server thru specialized HTTP server libraries like libonion, libmicrohttpd etc.

By using AJAX techniques (e.g. thru jquery) your application won't transmit all the display data to the browser at once (but only incrementally and only the actually shown data).

You might also consider fastcgi as a way to connect your application to some web server.

Upvotes: 4

Related Questions