#
# 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
#
#   http://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.
#

# Basic site settings
safe: false
title: Apache Thrift™
email: dev@thrift.apache.org
description: >-
  The Apache Thrift software framework, for scalable cross-language services
  development, combines a software stack with a code generation engine to build
  services that work efficiently and seamlessly between many languages.
url: "https://thrift.apache.org"

# Default front-matter values for specific collections
defaults:
  -
    scope:
      path: ""
      type: "pages"
    values:
      layout: "default"

# Additional variables to power specific pages
git_repo: "https://github.com/apache/thrift"
release_url: "https://www.apache.org/dist/thrift"
mirror_url: "http://www.apache.org/dyn/closer.cgi?path="
jira_url: "http://issues.apache.org/jira/browse/THRIFT"

current_release: "0.13.0"
current_release_date: "2019-OCT-16"

