summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 64daf2eb7a4cebf5424f5591c0d2f5301fe0c77d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Vespa

Vespa is an engine for low-latency computation over large data sets.
It stores and indexes your data such that queries, selection and processing over the
data can be performed at serving time.

This README describes how to build and develop the Vespa engine.
For user documentation see TODO: Github pages link

## Getting started developing

### Setting up local git config

    git config --global user.name "John Doe"
    git config --global user.email johndoe@host.com


### Setting up build environment

C++ building is currently supported on CentOS 7.

#### Install required build dependencies

    sudo yum -y install epel-release centos-release-scl yum-utils
    sudo yum-config-manager --add-repo https://copr.fedorainfracloud.org/coprs/g/vespa/vespa/repo/epel-7/group_vespa-vespa-epel-7.repo
    sudo yum -y install devtoolset-4-gcc-c++ devtoolset-4-libatomic-devel \
        Judy-devel cmake3 ccache lz4-devel zlib-devel maven libicu-devel llvm-devel \
        llvm-static java-1.8.0-openjdk-devel openssl-devel rpm-build make \
        vespa-boost-devel vespa-libtorrent-devel vespa-zookeeper-c-client-devel vespa-cppunit-devel

or use our prebuilt docker image

    # TODO: Add docker command

### Building Java modules

Java modules can be built on any environment having Java and Maven:

    sh bootstrap.sh
    mvn install

### Building C++ modules

    source /opt/rh/devtoolset-4/enable
    sh bootstrap.sh
    mvn install -DskipTests -Dmaven.javadoc.skip=true
    cmake .
    make
    make test

### Create RPM packages

    sh dist.sh VERSION && rpmbuild -ba ~/rpmbuild/SPECS/vespa-VERSION.spec

## Running Vespa on a local machine

* OS X : See [node-admin/README_MAC.md](node-admin/README_MAC.md)
* Linux : See [node-admin/README_LINUX.md](node-admin/README_LINUX.md)


Code licensed under the Apache 2.0 license. See LICENSE file for terms.

## Documenting your features

See [README-documentation.md](README-documentation.md).