Kids Is Data Stream
C++ C Go JavaScript Python Bison Other
Switch branches/tags
Nothing to show
Clone or download
dccmx Merge pull request #49 from liyichao/master
Fix docker build error.
Latest commit 6204488 May 7, 2015
Permalink
Failed to load latest commit information.
client
debian output deb in project directory Dec 22, 2014
deps/ae update anet.c to redis-2.8.19 and simplify Quickstart Dec 20, 2014
doc
docker add docker/sources.list Jan 4, 2015
samples
src reload store config by SIGHUP Feb 28, 2015
test Add unit test for bytesToHuman. Jan 22, 2015
tools First public release. Dec 19, 2014
.dockerignore Fix docker build error. May 7, 2015
.gitignore
.travis.yml
ChangeLog
Dockerfile Fix docker build error. May 7, 2015
LICENSE
Makefile.am
README.md move Chinese doc link upper Jan 12, 2015
README.zh_CN.md
TODO First public release. Dec 19, 2014
autogen.sh First public release. Dec 19, 2014
configure.ac all reference to version now comes from version.m4 Dec 21, 2014
version.m4 all reference to version now comes from version.m4 Dec 21, 2014

README.md

kids

Build Status

Kids is a log aggregation system.

It aggregates messages like Scribe and its pub/sub pattern is ported from Redis.

中文文档

Features

  • Real-time subscription
  • Distributed collection
  • Message persistence
  • Multithreading
  • Redis protocol
  • No third-party dependencies

Quickstart

From Source

You need a complier with C++11 support like GCC 4.7 (or later) or Clang.

Download a source release, then:

tar xzf kids-VERSION.tar.gz
cd kids-VERSION
./configure
make
make test  # optional
make install

By default, it will be installed to /usr/local/bin/kids. You can use the --prefix option to specify the installation location. Run ./configure --help for more config options.

Kids comes with some sample config files in samples/, after building, simply run:

kids -c samples/dev.conf

Because kids uses redis protocol, you can use redis-cli to play with it, open another terminal:

$ redis-cli -p 3888
$ 127.0.0.1:3388> PSUBSCRIBE *

In yet another terminal:

$ redis-cli -p 3388
$ 127.0.0.1:3388> PUBLISH kids.testtopic message

redis-cli needs redis to be installed. On Mac, you can run brew install redis to install it. On Linux, run sudo apt-get install redis-tools

Run kids --help for more running options.

Using docker

Do the following:

git clone https://github.com/zhihu/kids.git
cd kids
cp samples/dev.conf debian/kids.conf
docker build -t zhihu/kids .

Now you can run it like this:

docker run -d -p 3388:3388 zhihu/kids

You can also specify the config file like this:

docker run -d -v /path/to/kids/conf:/etc/kids.conf -p 3388:3388 zhihu/kids

Configuration

See configuration.

Run in production

see production.

Developer

You will need

  • build-essential
  • libtool
  • automake
  • c++ compiler with c++ 11 support like gcc4.7+ or Clang

to build kids from source. Run the following to build kids:

./autogen.sh
./configure
make

License

Kids Uses BSD-3, see LICENSE for more details.

FAQ

Q: What is the meaning of "kids"?
A: "kids" is the recursive acronym of "Kids Is Data Stream".

Architecture

image