The 29-year-old has signed a contract to the summer of 2022 for the Canaries, who are bottom of the Premier League.
"I'm very happy to be here. It's a childhood dream," said Rupp. "I was in the Bundesliga for 10 years now and it's a new chapter for me."
"I was in the training camp in Marbella with Hoffenheim and then two days later, I'm here so it's been very quick," added Rupp. "But I wanted to be part of the team here and help the team stay in the Premier League."
German Farke added: "Lukas is a great guy who has a lot of experience. He's played for some very big clubs in Germany and has a lot of game time in the Bundesliga.
"He's a versatile player who can play in a number of positions in the midfield and has also played at full-back."