plac

Unofficial Roon clients

Rewrite WS connection and messaging in Vala (GLib) The added overheads, especially cognitive overhead, had been bothering me long time. Communicating via plain C FFI also means the Zig part has to take care of thread-safety *outside of* GLib main-loop, which comes with noticeable performance penalty. By implementing (almost) everything in Vala, thread unsafety and performance penalty caused by locking have gone. Browser navigations are much quicker and I'm yet to see a single unresponsed request. JSON serializing and deserializing module is the only remaining Zig code. Although I'd much like to this part to Vala as well, JSON handling in Vala is horrible shit so I doubt the migration will happen in a foreseeable future. This patch just replaces the C API (in Zig) by Vala counterpart. I did not application restructure or refactor or whatever. Those will make this patch more difficult to view. The only difference (regression?) is the connection object cannot withstand WebSocket connection closing. However, in my limited testing, libsoup seems to keep WebSocket connection even when computer is sleeping... so the chance of disconnection will be lower than before therefore that's not a huge problem.

Changes

33 changed files (+1142/-6302)