<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<rdf:RDF xml:lang="en"
         xmlns="http://usefulinc.com/ns/doap#" 
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
         xmlns:asfext="http://projects.apache.org/ns/asfext#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
   
         https://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
  <Project rdf:about="https://druid.apache.org/">
    <created>2012-10-23</created>
    <license rdf:resource="https://spdx.org/licenses/Apache-2.0" />
    <name>Apache Druid</name>
    <homepage rdf:resource="https://druid.apache.org/" />
    <asfext:pmc rdf:resource="https://druid.apache.org" />
    <shortdesc>High performance, real-time analytics database for sub-second queries at scale and under load.</shortdesc>
    <description>Apache Druid is a high performance real-time analytics database. Druid's main value add is to reduce time to insight and action.

Apache Druid is designed for workflows where fast queries and ingest really matter. Druid excels at powering UIs, running operational (ad-hoc) queries, or handling high concurrency. Consider Druid as an open source alternative to data warehouses for a variety of use cases.</description>
    <bug-database rdf:resource="https://github.com/apache/druid/issues" />
    <mailing-list rdf:resource="https://lists.apache.org/list.html?dev@druid.apache.org" />
    <download-page rdf:resource="https://druid.apache.org/downloads/" />
    <programming-language>Java</programming-language>
    <category rdf:resource="https://projects.apache.org/category/big-data" />
    <category rdf:resource="https://projects.apache.org/category/database" />
  </Project>
</rdf:RDF>

