<?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://trafficcontrol.apache.org">
		<created>2021-05-19</created>
		<license rdf:resource="https://spdx.org/licenses/Apache-2.0" />
		<name>Apache Traffic Control</name>
		<homepage rdf:resource="https://trafficcontrol.apache.org" />
		<asfext:pmc rdf:resource="https://trafficcontrol.apache.org" />
		<shortdesc>Apache Traffic Control allows you to build a large scale content delivery network using open source.</shortdesc>
		<description>With Apache Traffic Control, operators can setup a Content Delivery Network to quickly and efficiently deliver content to their users. Traffic Control is a highly distributed, scalable and redundant solution meeting the needs of operators from small to large.</description>
		<bug-database rdf:resource="https://github.com/apache/trafficcontrol/issues" />
		<mailing-list rdf:resource="https://trafficcontrol.apache.org/mailing_lists/" />
		<download-page rdf:resource="https://trafficcontrol.apache.org/releases/" />
		<download-page rdf:resource="https://github.com/apache/trafficcontrol/releases" />
		<programming-language>Go</programming-language>
		<category rdf:resource="https://projects.apache.org/category/content" />
		<category rdf:resource="https://projects.apache.org/category/cloud" />
		<category rdf:resource="https://projects.apache.org/category/http" />
		<category rdf:resource="https://projects.apache.org/category/network-server" />
		<release>
			<Version>
				<name>Apache Traffic Control v5.1.2</name>
				<created>2021-05-17</created>
				<revision>5.1.2</revision>
			</Version>
		</release>
		<release>
			<Version>
				<name>Apache Traffic Control v4.1.1</name>
				<created>2020-12-04</created>
				<revision>4.1.1</revision>
			</Version>
		</release>
		<repository>
			<GitRepository>
				<location rdf:resource="https://github.com/apache/trafficcontrol.git"/>
				<browse rdf:resource="https://github.com/apache/trafficcontrol"/>
			</GitRepository>
		</repository>
		<maintainer>
			<foaf:Person>
				<foaf:name>Apache Traffic Control Team</foaf:name>
					<foaf:mbox rdf:resource="mailto:dev@trafficcontrol.apache.org"/>
			</foaf:Person>
		</maintainer>
	</Project>
</rdf:RDF>
