# Happy New Release (of Lithium 0.4): Although things have been a little quiet over the holiday season, we're proud to announce the availablity of Lithium 0.4. With [over 100 changes](http://rad-dev.org/lithium/wiki/releases/0_4) since the last release, our relentless march towards 1.0 continues full-steam, with the following highlights: - **Significant updates and improvements in the cache layer:** In addition to new adapters for both XCache and Redis, we've added support for atomic increment and decrement, and laid the groundwork for multi-key reads and writes. - **Base classes for handling adapter configurations refactored**: In our ongoing effort to provide developers with a streamlined, consistent API, the `core\Adaptable` class, which handles adapter configurations for several framework classes has been refactored, and the `data\Connections` class has been rewritten to extend it, making Lithium's core APIs even more uniform. - **Console commands:** The `li3 build` console interface now has the ability to build and extract `.phar` archives for application & library distribution goodness. Additionally, you can also run `li3 build test <type> <name>` to create a test case, or `li3 build test mock <type> <name>` to create a mock. See the API docs for all the available options. - **Additional extensibility refactoring:** While we've always prided ourselves on having an extremely flexible core — allowing developers to replace most dependencies with custom classes — we decided to put our code to the test last week to find out just how extensible it is. We wrote a small analysis tool designed to measure the static coupling between the framework's base packages. This tool allowed us to identify a couple of places where static dependencies could be extracted out and made dynamic. <br /><br /> After making those changes, the results of subsequent analysis was very satisfactory: with exception to the `core` and `util` packages (which comprise the foundations of the framework), only two other packages have static intra-package dependencies. What this means is that in the case of almost all packages in the framework, it is possible to extract them out and use them on their own. Not only that, but we also found that the `core` and `util` packages taken together act as a sort of framework micro-kernel: a collection of foundation and utility classes which can be used together to construct your own small application or mini-framework. In other news, Joël has begun work on the [li3_queue plugin](http://rad-dev.org/li3_queue), with support for [ Beanstalk](http://kr.github.com/beanstalkd/) underway, and [Mariano Iglesias](http://twitter.com/mgiglesias) has [written up a tutorial](http://marianoiglesias.com.ar/li3-lithium/building-a-blog-with-lithium-and-doctrine/) on integrating [the Doctrine ORM](http://www.doctrine-project.org/) with Lithium. All that said, don't forget to [grab the release while it's hot](http://rad-dev.org/lithium/versions), because we've got even bigger changes up our sleeves for 0.5. Finally, I'd like to thank everyone who's come alongside the Lithium project and offered their support, be it code, advice, or encouragement. If this is the beginning of what the Lithium community will be, then I have very, very high hopes for this project. 2010 is gonna be big. ~ Nate ~