The Uniswap protocol is a permissionless peer-to-peer system designed for exchanging cryptocurrencies. The protocol was founded by Hayden Adams in 2018.
Design and Usage
Uniswap uses an Automated Market Maker (AMM) model. An AMM replaces the buy and sell orders in an order book market with a liquidity pool of two assets, both valued relative to each other. As one asset is traded for the other, the relative price of the two assets shifts, and a new market rate (price) for both is determined. 
A liquidity provider (LP) is someone who deposits a pair of tokens to a smart contract. In return, they're compensated with a percentage of the trading fees for the given pair. 
A liquidity provider share of the pool is represented by the LP token, unique for each liquidity pool. LP tokens automatically earn the trading fees, since they represent a portion of the whole pool which grows as fees are accumulated.
Swaps are the most common use. For users, swapping is straightforward: a user selects an ERC-20 token that they own and a token they would like to trade it for. Executing a swap sells the currently owned tokens for the proportional amount of the tokens desired, minus the swap fee, which is given to liquidity providers. 
When transactions are submitted to Ethereum, their order of execution is established by the gas price offered as a fee for executing each transaction. The higher the gas price, the faster the transaction is included in a new block. The transactions with an insufficient gas price will remain pending for an indeterminate amount of time. During this time, the price environment in which the transaction will eventually be executed will change, as other swaps will be taking place. 
Uniswap V3 introduced the concept of concentrated liquidity provision. This allows users to provide liquidity for a certain pool, only in a predetermined price range. Concentrated liquidity reduces slippage since, provided most liquidity will be found at prices close to the actual price at which the tokens are currently trading, traders will tap into a deeper pool while LPs will earn more fees as long as the price stays within the range of their LP position. With concentrated liquidity LP tokens are no longer fungible, they are NFTs (ERC-721) which represent both the amount of tokens supplied and the price range. Concentrated liquidity also worsens impermanent loss: the narrower the price range, the more a price movement affects the token balances on the LP position.