Memgraph, Client Adapters and WebAssembly. What?
Blog post from Memgraph
Kostas Kyrimis from Memgraph's Core Team introduces a three-part series exploring the integration of WebAssembly into Memgraph's architecture, specifically focusing on client adapters. The motivation behind this exploration stems from the complexities involved in implementing client adapter libraries, which traditionally require either reimplementation of networking protocols for each programming language or reliance on specific bindings APIs, each with its unique challenges. Kyrimis highlights the limitations of using tools like SWIG for code generation, as they often complicate debugging. Instead, Memgraph aims to leverage WebAssembly as a platform-independent intermediate representation, compiling the C client library into a WebAssembly module to facilitate a universal runtime through WASMER. This approach centralizes changes within the C implementation, reducing cognitive overhead and isolating bugs within the networking stack, while eliminating the need for understanding diverse binding libraries. Kyrimis teases a deeper exploration of WebAssembly in the subsequent articles, culminating in the development of Memgraph's first WASM-based client adapter library for JavaScript, the jsmgclient.