RetroArch is a modular multi-system emulator system that is designed to be fast, lightweight and portable. It has features few other emulator frontends have, such as real-time rewinding and game-aware shading. For each emulator ‘core’, RetroArch makes use of a library API that we like to call ‘libretro’.
Libretro is the API that RetroArch uses. It makes it easy to port games and emulators to a single core backend, such as RetroArch.
For the user, this means – more ports to play with, more crossplatform portability, less worrying about developers having to reinvent the wheel writing boilerplate UI/port code – so that they can get busy with writing the emulator/porting the emulator/game.