Dynalink

Dynamic linking simplified for your language on the JVM.

View project on GitHub Download Dynalink (v0.7)


What is Dynalink?

 


Designed for JVM language implementers.

Higher level

Invokedynamic is just the beginning. There's lot of higher level functionality you'll need on top of it that Dynalink provides.

Interop with Java

Dynamic linking to any plain Java object's property getters, setters, fields, methods, classes' static properties, fields, methods, constructors. Additional container operations for arrays, collections, and maps. Full overloaded method resolution, vararg handling, and type conversions; the whole deal.

Prefab everything

Ready to use monomorphic and polymorphic call site classes. Out-of-the-box bootstrap methods. Type guards. A whole lot of wheel reinvention eliminated for you.

Cross-language interop

Want to pass objects from Ruby to Python to JavaScript to Java and back within the same JVM? Think it's a pipe dream? Think again. Our unified metaobject protocol conventions, linker autodiscovery and composition has this covered for you with practically no extra effort on your part.

Type conversions

Automatically provides all Java Language Specification compliant type conversions, and lets you extend them with your language specific ones. Your conversions automatically become first-class citizens when being considered in overloaded method resolutions and parameter passing.

Open Source

Hosted at GitHub, Apache 2.0 licensed Open Source, for your worry-free adoption.


Media

Watch a talk explaining Dynalink at the 2011 JVM Language Summit in Santa Clara, California.

Watch a talk explaining Dynalink at the 2011 JVM Language Summit in Santa Clara, California.

Watch a talk explaining Dynalink's integration into Nashorn at 2011 JavaOne in San Francisco, California.

Watch a talk explaining Dynalink's integration into Nashorn at 2011 JavaOne in San Francisco, California.