Apache Arrow Website
Copyright 2017-2022 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

The deployed version of the website includes files generated by Jekyll (MIT)
 * Copyright (c) 2008-2022 Tom Preston-Werner and Jekyll contributors
 * https://github.com/jekyll/jekyll
