I created a a lightweight, simple to use Library for common Arduino Rotary Encoders with pushbutton using a single timer interrupt. Pushed it to gitHub :
My motivation was the lack of simple code that actually works. The default interrupt period is as small as 0.1 ms, which provides fast and reliable response at high speed, while still allowing for effective contact bounce filtering for a fully reliable operation at slow motion.