BridJ (BSD-licensed) is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great JNA, with better performance, C++ and generics added).

Here’s a summary of the changes between version 0.6 and this bugfix-release version 0.6.1 (see full change log here) :

  • Release artifacts are available in Maven Central
  • Fixed wchar_t and WideCString on MacOS X (issue #295)
  • Fixed @Name annotation
  • Fixed deletion of temporary extracted library files with shutdown hook (issue #197)
  • Fixed Unix binaries dependency on GLIBC 2.11 (lowered to version 2.2.5) (issue #195)
  • Fixed some pointer methods : 3D pointers allocation, Pointer.setXXXsAtOffset, float endianness conversion
  • Fixed regression on struct-valued struct fields (when implemented by java fields) (issue #200)
  • Fixed crash with valued enum return values (issue #196)
  • Fixed crash of dynamic callbacks on Win32
  • Fixed attachment of native threads in native -> Java callbacks (should attach them as JVM daemon threads)
  • Fixed C++ inner class name-mangling matching
  • Fixed signature of ITaskbarList3.SetProgressValue (issue #218)
  • Fixed Pointer.getByteBuffer() and Pointer.getBytes() (and all their type variants !)
  • Fixed StructIO.getEnumField (now returns an IntValuedEnum)
  • Fixed handling of CLong / SizeT java fields in structs (cf. issue #253)
  • Fixed StructIO.FieldDecl accessibility to allow override of all StructIO.Customizer methods (cf. issue #220)
  • Fixed regression on libc, created with null path (issue #217)
  • Fixed back-references in Visual C++ demangler (issue #291)
  • Fixed binding of IntValuedEnum types
  • Fixed handling of virtual destructors with GCC-compiled libraries (and virtual table pointer + runtime guess / check of virtual index for virtual methods) (issue #281)
  • Fixed shortcuts in GCC4Demangler (contrib from Rémi Émonet, issue #211)
  • Added support for PointerIO<IntValuedEnum> ([issue #261](https://github.com/ochafik/nativelibs4java/issues/261))
  • Added ProcessUtils.getCurrentProcessId()
  • Allow libname.so and name.so for embedded libraries on Unix (issue #215)
  • Enhanced multi-threaded performance of PointerIO.getInstance (issue #203)
  • Added Pointer.getXxxs(XxxBuffer)
  • Added alias mechanism for annotations : any annotation which class is itself annotated by @Ptr / @CLong can serve as an alias (issue #202)
  • Added native error log when LoadLibrary or dlopen failed
  • Added IntValuedEnum FlagSet.fromValue(int, E...)
  • Enabled all compiler optimizations on all platforms but win32
  • Updated doc of Pointer.getXxxs()
  • Added experimental by-value struct support on amd64 for structs larger than 64 bits (disabled by default, set -Dbridj.structsByValue=true or BRIDJ_STRUCTS_BY_VALUE=1 to enable)

Special thanks to the users, [contributors](http://code.google.com/p/bridj/wiki/CreditsAndLicense) and bug reporters that helped getting this version out !

You can contribute to the project by [reporting bugs here](https://github.com/ochafik/nativelibs4java/issues?labels=BridJ) and joining the [NativeLibs4Java Community](http://groups.google.com/group/nativelibs4java).

Wait no longer : [download and use BridJ](http://code.google.com/p/bridj/wiki/Download) now !