split up compact protocol specs to a shared file
added buffered compact protocol