DigitalPinsPWM licensed under GPLv3 is both free and open-source Arduino library providing unified interface for using PWM on all digital pins of Arduino UNO (pins from 0 to 13). PWM on pins not supporting it in hardware is software emulated.
Installation:
Install TimerOne library if not present.
Copy DigitalPinsPWM folder to Arduino\libraries directory.
Example:
From Arduino IDE open: File->Examples->DigitalPinsPWM->fade.
Download:
Project source code repository is hosted on gitlab.