CoW Protocol matches trades via batch auctions for a variety of on-chain liquidity sources.
Trades can be settled via underlying on-chain AMMs directly or via DEX Aggregators, depending on which pool/path offers the best price. It is thus essentially acting as a DexAggregator of the DexAggregators.
In addition to that, before finding the best price for a trade from available on-chain liquidity, Cow Protocol first seeks a coincidence of wants within the existing batch to offer an even better price than any pool can.
GitHub - cowprotocol/contracts: Smart contracts for the Gnosis Protocol v2
GitHub - cowprotocol/cowswap: 🐮 CowSwap: First Gnosis Protocol v2 UI