Dynamic Software and Distributed Systems


We release some of our research work as public open source projects on GitHub.

Golo: a lightweight dynamic language for the JVM

Golo is a simple dynamic, weakly-typed language that favours explicit over implicit. You should become a Golo programmer within hours, not days. Built from day 1 with invokedynamic, Golo takes advantage of the latest advances of the JVM. It is also a showcase on how to build a language runtime with invokedynamic.

JooFlux: a Java agent for dynamic aspect-oriented middlewares

JooFlux a JVM agent that allows both the dynamic replacement of method implementations and the application of aspect advices. Compared to existing approaches, JooFlux takes a novel route by taking advantage of the new invokedynamic instruction added in Java SE 7. The runtime overhead of JooFlux is marginal for method invocations, and fairly limited when aspects are being injected. In any case, JooFlux shows interesting performance compared to related approaches such as AOP tools or dynamic languages that rely on dynamic dispatch. More interestingly, JooFlux does not involve reloading whole classes on either method replacement or advice injection, which keeps a large range of just-in-time compilation optimizations valid.

OSGi substitution library

OSGi-substitution is an API and OSGi service set to allow service substitution without any restart of the client and without any assumption on external services.


We also publish some of our research work as open data.

Microscopic vehicular mobility trace of Europarc roundabout, Creteil, France

Simulation tools are widely used to evaluate assumption correctness and performances of optimization algorithms. Several macroscopic vehicular mobility trace exist, but few detailed ones at the microscopic level. Most of macro traces integrate simplistic models for intersections and roundabout, while the complexity of this fine-grained mobility can greatly affect the global optimization. For that purpose, we propose a dataset describing a complex roundabout in Creteil, France.

Taxi Trace - Contact Analysis

Multi-thread analysis of taxi GPS trace to extract taxi contacts.