Occasionally our cat scarfs down his kibbles so fast he doesn't properly digest his meal, undoubtedly resulting in a small pile of partially digested dinner ontop of our rug. Cleaning it fully requires some careful handling, since you don't want to press in the mess into the fabric and leave a stain...
First, use a butter knife or a spoon to pick up the bulk of the mess from ontop the carpet. By gently removing it this way you'll prevent seepage into the carpet or rug (as you don't want to compound the mess with mold growth). You'll also get rid of the most disgusting part of the mess, as feline vomit is just one notch less unpleasant than their other "business".
Follow this up by placing a towel underneath the rug and dabbing with some club soda with a drop of dish washing solution.
Gently rub/agitate the mixture using a small hand towel and rinse with 1/2 cup vinegar diluted in 1 qt warm water. Soak up excess liquid with paper towel (the reusable Trader Joe's soaking towels work well for us) and repeat until it looks clean with a bucket to squeeze-wash each time.
Expedite drying with a hair dryer on the cool setting or a fan.
To rid of any smell after the rug/carpet is all dry, we sprinkle some baking soda, allow to sit for 3-5 hours, and vacuum (the baking soda seems to help remove any stain discolouration too).
Only when the mess is larger do we resort to our wet vac, which we don't like to use it because it's loud and the rug seems to take longer to dry. We've also asked our cat Eames to properly chew his meal, and for the most part my porcine feline abides.
Of course, if you want a simple store bought solution, you can always just get serious like Abby recommends.