Mens lavnivå laget ble skrevet manuelt i C, er høynivålaget automatisk generert fra en beskrivelse av elementer av protokollen som er lagret i XML. Hver gang protokollbeskrivelsen i denne XML-filen forandrer seg, kan C-koden som implementerer en slik protokoll bli regenerert for å inkludere de nye forandringene. Referanseimplementasjonen av protokollen til Wayland er delt i to biblioteker. Biblioteket som håndterer klienter kalles og biblioteket som håndterer tjenere kalles .