Skip to content

Commit 288dd08

Browse files
git-hulklinty
authored and
linty
committed
MOD: cleanup for open source
1 parent 82caf45 commit 288dd08

File tree

143 files changed

+20010
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

143 files changed

+20010
-0
lines changed

.gitignore

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Prerequisites
2+
*.d
3+
4+
# Compiled Object files
5+
*.slo
6+
*.lo
7+
*.o
8+
*.obj
9+
10+
# Precompiled Headers
11+
*.gch
12+
*.pch
13+
14+
# Compiled Dynamic libraries
15+
*.so
16+
*.dylib
17+
*.dll
18+
19+
# Fortran module files
20+
*.mod
21+
*.smod
22+
23+
# Compiled Static libraries
24+
*.lai
25+
*.la
26+
*.a
27+
*.lib
28+
29+
# Executables
30+
*.exe
31+
*.out
32+
*.app
33+
34+
.idea/
35+
cmake-build-debug
36+
*.o
37+
*.pyc
38+
*.swp
39+
*.swo
40+
.DS_Store

.gitmodules

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
[submodule "external/glog"]
2+
path = external/glog
3+
url = https://github.com/google/glog.git
4+
[submodule "external/gflags"]
5+
path = external/gflags
6+
url = https://github.com/gflags/gflags.git
7+
[submodule "external/rocksdb"]
8+
path = external/rocksdb
9+
url = https://github.com/facebook/rocksdb.git
10+
[submodule "external/snappy"]
11+
path = external/snappy
12+
url = https://github.com/google/snappy.git
13+
[submodule "external/libevent"]
14+
path = external/libevent
15+
url = https://github.com/libevent/libevent.git
16+
[submodule "external/googletest"]
17+
path = external/googletest
18+
url = https://github.com/abseil/googletest.git
19+
[submodule "external/jemalloc"]
20+
path = external/jemalloc
21+
url = https://github.com/jemalloc/jemalloc.git

.travis.yml

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
dist: trusty
2+
language: c++
3+
os:
4+
- linux
5+
sudo: yes
6+
compiler:
7+
- gcc
8+
9+
cache:
10+
directories:
11+
- $TRAVIS_BUILD_DIR/build/
12+
- $TRAVIS_BUILD_DIR/external/
13+
stages:
14+
- analysis
15+
- build
16+
- test
17+
- push
18+
19+
jobs:
20+
include:
21+
- stage: analysis
22+
name: Static check the source code and lint
23+
install:
24+
- sudo apt-get install -y cppcheck
25+
- sudo pip install --upgrade pip
26+
- sudo pip install cpplint
27+
script:
28+
- sh cpplint.sh
29+
- sh cppcheck.sh
30+
- stage: build
31+
name: Build the kvrocks
32+
script:
33+
- make -j4
34+
- stage: test
35+
name: Unit Tests
36+
install:
37+
- sudo pip install nose
38+
- sudo pip install git+https://github.com/andymccurdy/[email protected]
39+
script:
40+
- make test
41+
- stage: test
42+
name: Functional Tests
43+
script:
44+
- sh tests/scripts/setup-env.sh build
45+
- cd tests/functional && nosetests -v
46+
- stage: push
47+
name: Push to dockerhub
48+
services:
49+
- docker
50+
before_install:
51+
- docker build -t hulkdev/kvrocks:$TRAVIS_TAG .
52+
script: bash docker_push.sh
53+
on: # push image when tag
54+
tag: true

.travis.yml.swn

12 KB
Binary file not shown.

CMakeLists.txt

+267
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,267 @@
1+
cmake_minimum_required(VERSION 3.10)
2+
project(kvrocks
3+
VERSION 1.0.0
4+
DESCRIPTION "NoSQL which based on rocksdb and compatible with the Redis protocol"
5+
LANGUAGES CXX)
6+
7+
# External Dependences
8+
include(ExternalProject)
9+
10+
set(default_build_type "Release")
11+
if (NOT CMAKE_BUILD_DIRECTORY)
12+
set(CMAKE_BUILD_DIRECTORY ${CMAKE_BINARY_DIR})
13+
endif()
14+
# GLIBC < 2.17 should explict specify the real time library when use clock_*
15+
find_library(REALTIME_LIB rt)
16+
if (REALTIME_LIB)
17+
list(APPEND EXTERNAL_LIBS PRIVATE rt)
18+
endif()
19+
20+
include(cmake/jemalloc.cmake)
21+
list(APPEND EXTERNAL_LIBS PRIVATE ${jemalloc_LIBRARIES})
22+
list(APPEND EXTERNAL_INCS PRIVATE ${jemalloc_INCLUDE_DIRS})
23+
24+
include(cmake/gflags.cmake)
25+
list(APPEND EXTERNAL_LIBS PRIVATE ${gflags_LIBRARIES})
26+
list(APPEND EXTERNAL_INCS PRIVATE ${gflags_INCLUDE_DIRS})
27+
28+
include(cmake/glog.cmake)
29+
list(APPEND EXTERNAL_LIBS PRIVATE ${glog_LIBRARIES})
30+
list(APPEND EXTERNAL_INCS PRIVATE ${glog_INCLUDE_DIRS})
31+
32+
include(cmake/snappy.cmake)
33+
list(APPEND EXTERNAL_LIBS PRIVATE ${snappy_LIBRARIES})
34+
list(APPEND EXTERNAL_INCS PRIVATE ${snappy_INCLUDE_DIRS})
35+
36+
include(cmake/rocksdb.cmake)
37+
list(APPEND EXTERNAL_LIBS PRIVATE ${rocksdb_LIBRARIES})
38+
list(APPEND EXTERNAL_INCS PRIVATE ${rocksdb_INCLUDE_DIRS})
39+
40+
include(cmake/libevent.cmake)
41+
list(APPEND EXTERNAL_LIBS PRIVATE ${libevent_LIBRARIES})
42+
list(APPEND EXTERNAL_INCS PRIVATE ${libevent_INCLUDE_DIRS})
43+
44+
include(cmake/gtest.cmake)
45+
list(APPEND EXTERNAL_LIBS PRIVATE ${gtest_LIBRARIES})
46+
list(APPEND EXTERNAL_INCS PRIVATE ${gtest_INCLUDE_DIRS})
47+
# End dependences
48+
49+
# Add git sha to version.h
50+
find_package(Git REQUIRED)
51+
execute_process(COMMAND git rev-parse --short HEAD OUTPUT_VARIABLE GIT_SHA)
52+
string(STRIP ${GIT_SHA} GIT_SHA)
53+
configure_file(src/version.h.in ${PROJECT_BINARY_DIR}/version.h)
54+
55+
# Main target
56+
add_executable(kvrocks)
57+
target_compile_features(kvrocks PRIVATE cxx_std_11)
58+
target_compile_options(kvrocks PRIVATE -Wall -Wpedantic -g -Wsign-compare -Wreturn-type -fno-omit-frame-pointer)
59+
option(ENABLE_ASAN "enable ASAN santinizer" OFF)
60+
if(ENBALE_ASAN)
61+
target_compile_options(kvrocks PRIVATE -fsanitize=address)
62+
target_link_libraries(kvrocks PRIVATE -fsanitize=address)
63+
endif()
64+
add_dependencies(kvrocks jemalloc libevent gflags glog snappy rocksdb gtest)
65+
target_include_directories(kvrocks PRIVATE ${PROJECT_BINARY_DIR})
66+
target_include_directories(kvrocks ${EXTERNAL_INCS})
67+
target_link_libraries(kvrocks PRIVATE -fno-omit-frame-pointer)
68+
target_link_libraries(kvrocks ${EXTERNAL_LIBS} -pthread)
69+
target_sources(kvrocks PRIVATE
70+
src/redis_db.cc
71+
src/redis_db.h
72+
src/redis_connection.cc
73+
src/redis_connection.h
74+
src/compact_filter.cc
75+
src/compact_filter.h
76+
src/worker.cc
77+
src/worker.h
78+
src/main.cc
79+
src/redis_request.cc
80+
src/redis_request.h
81+
src/redis_cmd.cc
82+
src/redis_cmd.h
83+
src/util.cc
84+
src/util.h
85+
src/storage.cc
86+
src/storage.h
87+
src/status.h
88+
src/redis_reply.h
89+
src/redis_reply.cc
90+
src/replication.cc
91+
src/replication.h
92+
src/task_runner.cc
93+
src/task_runner.h
94+
src/encoding.h
95+
src/encoding.cc
96+
src/redis_metadata.h
97+
src/redis_metadata.cc
98+
src/redis_string.h
99+
src/redis_string.cc
100+
src/redis_hash.h
101+
src/redis_hash.cc
102+
src/redis_list.h
103+
src/redis_list.cc
104+
src/redis_set.h
105+
src/redis_set.cc
106+
src/redis_zset.cc
107+
src/redis_zset.h
108+
src/redis_bitmap.cc
109+
src/redis_bitmap.h
110+
src/redis_pubsub.cc
111+
src/redis_pubsub.h
112+
src/lock_manager.cc
113+
src/rocksdb_crc32c.h
114+
src/config.cc
115+
src/config.h
116+
src/stats.cc
117+
src/stats.h
118+
src/server.cc
119+
src/server.h
120+
src/cron.cc
121+
src/cron.h
122+
src/event_listener.h
123+
src/event_listener.cc)
124+
125+
# kvrocks2redis sync tool
126+
add_executable(kvrocks2redis)
127+
target_compile_features(kvrocks2redis PRIVATE cxx_std_11)
128+
target_compile_options(kvrocks2redis PRIVATE -Wall -Wpedantic -g -Wsign-compare -Wreturn-type)
129+
option(ENABLE_ASAN "enable ASAN santinizer" OFF)
130+
if(ENBALE_ASAN)
131+
target_compile_options(kvrocks2redis PRIVATE -fno-omit-frame-pointer -fsanitize=address)
132+
target_link_libraries(kvrocks2redis PRIVATE -fno-omit-frame-pointer -fsanitize=address)
133+
endif()
134+
add_dependencies(kvrocks2redis libevent gflags glog rocksdb gtest)
135+
target_include_directories(kvrocks2redis PRIVATE ${PROJECT_BINARY_DIR})
136+
target_include_directories(kvrocks2redis ${EXTERNAL_INCS})
137+
target_link_libraries(kvrocks2redis ${EXTERNAL_LIBS} -pthread)
138+
target_sources(kvrocks2redis PRIVATE
139+
src/redis_db.cc
140+
src/redis_db.h
141+
src/compact_filter.cc
142+
src/compact_filter.h
143+
src/worker.cc
144+
src/worker.h
145+
src/util.cc
146+
src/util.h
147+
src/redis_connection.cc
148+
src/redis_connection.h
149+
src/redis_request.cc
150+
src/redis_request.h
151+
src/redis_cmd.cc
152+
src/redis_cmd.h
153+
src/storage.cc
154+
src/storage.h
155+
src/status.h
156+
src/redis_reply.h
157+
src/redis_reply.cc
158+
src/task_runner.cc
159+
src/task_runner.h
160+
src/encoding.h
161+
src/encoding.cc
162+
src/redis_metadata.h
163+
src/redis_metadata.cc
164+
src/redis_string.h
165+
src/redis_string.cc
166+
src/redis_hash.h
167+
src/redis_hash.cc
168+
src/redis_list.h
169+
src/redis_list.cc
170+
src/redis_set.h
171+
src/redis_set.cc
172+
src/redis_zset.cc
173+
src/redis_zset.h
174+
src/redis_bitmap.cc
175+
src/redis_bitmap.h
176+
src/redis_pubsub.cc
177+
src/redis_pubsub.h
178+
src/replication.cc
179+
src/replication.h
180+
src/lock_manager.cc
181+
src/rocksdb_crc32c.h
182+
src/config.cc
183+
src/config.h
184+
src/stats.cc
185+
src/stats.h
186+
src/server.cc
187+
src/server.h
188+
src/cron.cc
189+
src/cron.h
190+
src/event_listener.h
191+
src/event_listener.cc
192+
tools/kvrocks2redis/config.cc
193+
tools/kvrocks2redis/config.h
194+
tools/kvrocks2redis/main.cc
195+
tools/kvrocks2redis/sync.cc
196+
tools/kvrocks2redis/sync.h
197+
tools/kvrocks2redis/util.cc
198+
tools/kvrocks2redis/util.h
199+
tools/kvrocks2redis/redis_writer.cc
200+
tools/kvrocks2redis/redis_writer.h
201+
tools/kvrocks2redis/writer.cc
202+
tools/kvrocks2redis/writer.h
203+
tools/kvrocks2redis/parser.cc
204+
tools/kvrocks2redis/parser.h)
205+
206+
add_executable(unittest
207+
src/server.cc
208+
src/server.h
209+
src/config.cc
210+
src/config.h
211+
src/worker.cc
212+
src/worker.h
213+
src/redis_connection.cc
214+
src/redis_connection.h
215+
src/redis_pubsub.cc
216+
src/redis_pubsub.h
217+
src/redis_cmd.cc
218+
src/redis_cmd.h
219+
src/redis_request.cc
220+
src/redis_request.h
221+
src/replication.cc
222+
src/replication.h
223+
src/redis_reply.cc
224+
src/redis_reply.h
225+
src/redis_bitmap.cc
226+
src/redis_bitmap.h
227+
src/redis_metadata.cc
228+
src/encoding.cc
229+
src/redis_string.cc
230+
src/redis_hash.cc
231+
src/redis_list.cc
232+
src/redis_set.cc
233+
src/redis_zset.cc
234+
src/util.cc
235+
src/storage.cc
236+
src/lock_manager.cc
237+
src/stats.cc
238+
src/event_listener.cc
239+
src/task_runner.cc
240+
src/cron.cc
241+
src/compact_filter.cc
242+
src/redis_db.cc
243+
src/redis_db.h
244+
tests/main.cc
245+
tests/test_base.h
246+
tests/t_string_test.cc
247+
tests/t_encoding_test.cc
248+
tests/t_list_test.cc
249+
tests/t_hash_test.cc
250+
tests/t_set_test.cc
251+
tests/t_zset_test.cc
252+
tests/t_metadata_test.cc
253+
tests/string_util_test.cc
254+
tests/rwlock_test.cc
255+
tests/stats_test.cc
256+
tests/cron_test.cc
257+
tests/config_test.cc
258+
tests/task_runner_test.cc
259+
tests/t_bitmap_test.cc
260+
tests/compact_test.cc)
261+
262+
add_dependencies(unittest gflags glog rocksdb gtest)
263+
target_compile_features(unittest PRIVATE cxx_std_11)
264+
target_link_libraries(unittest ${EXTERNAL_LIBS})
265+
target_include_directories(unittest PRIVATE ${PROJECT_BINARY_DIR})
266+
target_include_directories(unittest ${EXTERNAL_INCS})
267+
target_include_directories(unittest PRIVATE src)

0 commit comments

Comments
 (0)