Dynamic Linker Framework for Languages on the JVM
Switch branches/tags
Latest commit f524803 Mar 20, 2015 @szegedi szegedi Adds internal object filters.
Adds a new service to LinkerServices that modifies the method handle so
that any parameters that can potentially receive internal language
runtime objects will have a filter added on them to prevent them from
escaping, usually by wrapping them. It can also potentially add an
unwrapping filter to the return value.


Dynalink is an invokedynamic-based high-level linking and metaobject protocol library. It enables creation of languages on the JVM that can easily interoperate with plain Java objects and each other.

It lets you write your language runtime in a way where you can think in higher-level abstractions than the invokedynamic bytecode instruction.

See the Online documentation to get started.

You can also check out the video of the talk on Dynalink given during the 2011 JVM Language Summit, as well as slides and video of the talk about integration of Dynalink and Nashorn given during JavaOne 2012.

If you just want the binaries, you can get the releases from the Maven central repository. Frequent snapshots of the version under development are available in the Maven snapshot repository.

Dynalink is Open Source software, dual-licensed under both the Apache 2.0 license and 3-clause BSD license, allowing you to choose either one when you use Dynalink. When you choose one license, it will be the only one that applies to you, the other does not. See the Licensing FAQ for advice on which one to choose.

Build Status