Disclaimer: most of these I haven’t actually tried, certainly not in anger, so much of what follows is from what I could gather looking at the project page and perusing some code samples and (if present) docs.