A family of tools for cross-language integration and portability
Click on the product logos or the product links to read about each product at a more detailed level. This page serves as a high-level introduction to the products that Codemesh offers.
Codemesh started out with an integration tool for Java/C++ interoperability, called JunC++ion (pronounced "junction"). JunC++ion allows you to quickly and efficiently generate C++ bindings for arbitrary Java classes. The generated bindings can be used by C++ developers to leverage the underlying Java classes from C++ applications or to implement Java native methods in a safe, cost-effective, and maintainable manner.
One particular JunC++ion use case kept coming up time and again, so we decided to do something special for this problem. The problem was:
"How can I talk to a Java Message Service (JMS) from my C++ applications?
We used JunC++ion in-house and generated an integration library that specifically solves this integration problem. Our customers could of course do the same thing (and more) by using JunC++ion themselves, but we already did the job for them so they could focus on their core problem. We bundled the integration library and some examples into our second product which we called JMS Courier.
When .NET made its appearance, we were initially sceptical about its staying power. After spending some time on evaluating it, we quickly changed our minds and decided to create a ".NET version" of JunC++ion, which we called JuggerNET. JuggerNET does for .NET developers what JunC++ion does for C++ developers: they can quickly and efficiently generate .NET bindings for arbitrary Java classes.
When we developed JunC++ion, we needed a way to portably build both our own C++ libraries and our customers' generated C++ code. As we had standardized on ANT for our own build environment, we went looking for an ANT C++ compiler task that would satisfy our requirements. When we couldn't find one, we wrote one ourselves. It grew, and grew, and finally developed into terp, a full-blown template engine with a powerful ANT module that supports iterating over processor architectures, build option values, and compilers, while building your C++ applications at a high level of abstraction. terp really is much more than an ANT C++ compiler task, but this is one of its strong points.