Apache Cassandra
Copyright 2009-2020 The Apache Software Foundation

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

Parts of the DataStax Java Driver included in source form
(https://github.com/datastax/java-driver)
Copyright DataStax, Inc.

Some alternate data structures provided by high-scale-lib from
http://sourceforge.net/projects/high-scale-lib/.
Written by Cliff Click and released as Public Domain.

Some alternate data structures provided by concurrentlinkedhashmap
from http://code.google.com/p/concurrentlinkedhashmap/.
Copyright 2009 Benjamin Manes

Alternative collection types provided by google-collections from
http://code.google.com/p/google-collections/.
Copyright (C) 2007 Google Inc.

JSON (de)serialization provided by jackson (http://jackson.codehaus.org).
Copyright (C) 2010 Tatu Saloranta and others.

Alternative JSON (de)serialization by json-simple from
(http://code.google.com/p/json-simple).
Copyright (C) 2009 Fang Yidong and Chris Nokleberg

This product includes the Jetty HTTP server
(http://jetty.codehaus.org/jetty/).
Copyright 1995-2006 Mort Bay Consulting Pty Ltd

YAML support provided by snakeyaml (http://code.google.com/p/snakeyaml/).
Copyright (c) 2008-2010 Andrey Somov

Compression support provided by snappy-java (http://code.google.com/p/snappy-java/)
Written by Taro L. Saito.

Streaming compression support provided by ning-compress
(https://github.com/ning/compress)
Copyright 2009-2010 Ning, Inc.

CQL Native transport uses Netty
(https://netty.io/)
Copyright (C) 2011 The Netty Project

LZ4 compression support provided by lz4-java (http://github.com/jpountz/lz4-java)
Written by Adrien Grand.
Contains bindings to the C LZ4 implementation (http://code.google.com/p/lz4/)
Copyright (C) 2011-2012, Yann Collet.

Airline
(https://github.com/airlift/airline)
Copyright 2011, Dain Sundstrom dain@iq80.com
Copyright 2010, Cedric Beust cedric@beust.com

HLL++ support provided by stream-lib
(https://github.com/addthis/stream-lib)

Eclipse JDT
Java compilation software for user-defined-functions is provided by Eclipse,
which is open source software.  The original software and
related information is available at http://www.eclipse.org/
(http://www.eclipse.org/jdt/)

SIGAR
http://sigar.hyperic.com/

OHC
(https://github.com/snazy/ohc)
Java Off-Heap-Cache, licensed under APLv2
Copyright 2014-2015 Robert Stupp, Germany.

Protocol buffers for varint encoding
https://developers.google.com/protocol-buffers/
Copyright 2008 Google Inc.  All rights reserved.
BSD 3-clause

ASM
(http://asm.ow2.org/)
Copyright (c) 2000-2011 INRIA, France Telecom

HdrHistogram
http://hdrhistogram.org

JCTools
http://jctools.github.io/JCTools/
