Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zhihu/kids
Kids Is Data Stream
https://github.com/zhihu/kids
Last synced: 3 months ago
JSON representation
Kids Is Data Stream
- Host: GitHub
- URL: https://github.com/zhihu/kids
- Owner: zhihu
- License: other
- Created: 2014-12-19T06:01:57.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2020-08-10T06:08:01.000Z (over 4 years ago)
- Last Synced: 2024-03-26T19:36:17.220Z (8 months ago)
- Language: C++
- Homepage:
- Size: 565 KB
- Stars: 1,223
- Watchers: 146
- Forks: 222
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
README
# kids
[![Build Status]][Travis CI]
Kids is a log aggregation system.
It aggregates messages like [Scribe](https://github.com/facebookarchive/scribe) and its pub/sub pattern is ported from [Redis](http://redis.io/).
[中文文档](README.zh_CN.md)
## 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](http://clang.llvm.org).
Download a [source release](https://github.com/zhihu/kids/releases), then:
tar xzf kids-VERSION.tar.gz
cd kids-VERSION
./configure
make
make test # optional
make installBy 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/kidsYou 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](doc/config.md).
## Run in production
see [production](doc/deploy.md).
## Developer
You will need
* build-essential
* libtool
* automake
* c++ compiler with c++ 11 support like gcc4.7+ or [Clang](http://clang.llvm.org)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](doc/image/arch.jpg)
[Build Status]: https://img.shields.io/travis/zhihu/kids/master.svg?style=flat
[Travis CI]: https://travis-ci.org/zhihu/kids