MALT : Malloc Tracker (Inria)


Context
Full rewrite of MALT, an open-source memory profiling tool developed by INRIA to track malloc/free allocations in C/C++ programs. I migrated the interface from Angular to Vue 3 + TypeScript, with a lot of work on the D3 visualizations.
My approach
The brief was to move a scientific tool from Angular to Vue + TypeScript without degrading the experience of the researchers who use it daily. Once the base was stable and the plugins refreshed, I reworked the readability of the graphs and added the interactions that were missing.
- Full migration from Angular to Vue 3 + TypeScript, plugins updated, existing behavior preserved 1:1 to avoid breaking users' habits.
- Source code visualizer rebuilt from scratch: per-file navigation, annotated lines, detailed popups on memory allocations per line and per function.
- D3 graphs reworked for legibility, design and interactions, plus TanStack Query to cache calls, essential once profiling datasets climb to several MB.
Stack & technical choices
Vue.js + TypeScript was required by INRIA, and it's a strong fit for a tool that spends its time rendering data: typing cuts down on silent errors. D3.js stayed from V1, which makes sense for highly custom visualizations like an annotated code viewer. I added TanStack Query for caching: on this kind of dataset, you never want to fire the same request twice.
Outcome & takeaways
Live on the official memtt/malt repo, open-source, used by the C/C++ community doing memory profiling. The maintainers' feedback was that the interface and source code are clearer and more readable than V1. On a personal level, this is the project that forced me to dig deep into D3 on genuinely complex visualizations, territory you rarely run into on standard web projects.