Você quer criar uma interface para esses programas? Ou seja fazer um programa que chame os programas zip, rar, etc., já disponíveis de forma semelhante ao que o file-roller faz?
Ou você quer criar o seu próprio algoritmo de compressão?
A primeira opção é factível e pode ser até interessante para quem acha o file-roller limitado, mas se estiver pensando na segunda aconselho você a repensar. :p
Em geral esses programas de compressão usam o algoritmo de Lempel-Ziv-Welch, se não me engano. O que varia de um para o outro é a implementação. E não é só zip e rar que usam, ele também é usado em pdfs gifs, etc.
Novamente digo que eles usam o algoritmo de Lempel-Ziv-Welch, mas com implementações diferentes possivelmente patenteadas. O gif, por exemplo, é patenteado e por isso o programa gnuplot não vem com opção de gravar em gif mesmo os desenvolvedores tendo implementado.