{"id":13810746,"url":"https://github.com/smyte/smyte-db","last_synced_at":"2026-01-18T02:42:01.438Z","repository":{"id":153744333,"uuid":"73431866","full_name":"smyte/smyte-db","owner":"smyte","description":"Central build environment for Smyte C++ projects.","archived":false,"fork":false,"pushed_at":"2018-07-09T22:59:53.000Z","size":241,"stargazers_count":47,"open_issues_count":3,"forks_count":14,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-19T05:55:32.169Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-11-11T00:17:40.000Z","updated_at":"2024-06-29T05:44:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"982cebe7-fd47-4624-a01e-a6207a51c6b8","html_url":"https://github.com/smyte/smyte-db","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smyte%2Fsmyte-db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smyte%2Fsmyte-db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smyte%2Fsmyte-db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smyte%2Fsmyte-db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smyte","download_url":"https://codeload.github.com/smyte/smyte-db/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254171697,"owners_count":22026493,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T03:00:24.727Z","updated_at":"2026-01-18T02:42:01.424Z","avatar_url":"https://github.com/smyte.png","language":"C++","funding_links":[],"categories":["Projects built with Bazel"],"sub_categories":["non-Google projects"],"readme":"# smyte-db\n\nThis repo is the central build environment for all Smyte C++ projects. For documentation, issues, and code for the submodules in this project, please see each project's individual repo:\n  * [counters](https://github.com/smyte/counters)\n  * [ratelimit](https://github.com/smyte/ratelimit)\n\nSmyte's C++ development is based on facebook's [folly](https://github.com/facebook/folly) and [wangle](https://github.com/facebook/wangle) libraries to build high performance servers. The build system uses Google's [bazel](http://bazel.io/). By default, it builds a single executable binary that can be deployed to production directly.\n\n## Setup\n* Install `bazel`, `libssl-dev`, and `libatomic1`.\n* Ensure submodules are up-to-date: `git submodule update --init`.\n* Build a project: `bazel clean \u0026\u0026 bazel build ratelimit`. The first build may take a while to fetch all the third-party dependencies and build static libraries.\n\n## Style guide\nFollow [Google's C++ style guide](https://google.github.io/styleguide/cppguide.html) with a few exceptions:\n* Using C++ exception is allowed because both `folly` and `wangle` use it extensively.\n* Each line can have up to 120 characters instead of 80. Google sticks with 80 for historical reasons, but we have much wider screens now.\n* Method names use camel case, which starts with a lower case letter, e.g., `foo.addBack()`, instead of pascal case, which starts with a capital letter, e.g., `foo.AddBack()`. The main reason is that both `folly` and `wangle` use camel case, and we want to be consistent. Note that `rocksdb` uses pascal case because it is derived from Google's `leveldb` code. While we also use `rocksdb` heavily, we only use it as a library as supposed to involving it in the inheritance hierarchy.\n* Use [cpplint](https://raw.githubusercontent.com/google/styleguide/gh-pages/cpplint/cpplint.py) to check for style violations. We use the following config:\n```\n  --filter=-legal/copyright,-build/c++11,\n  --linelength=120,\n```\n* Name files using camel case and local variables using pascal case for the same reason.\n* Use `.cpp` instead of `.cc` as extension for C++ souce code files. There is really no difference between the two. Google uses `.cc`, and its build rule is also called `cc_binary` for example. But we'd rather be consistent with the main facebook C++ libraries.\n* Use [Clang Format](http://clang.llvm.org/docs/ClangFormat.html) to format your source code with the following config:\n```yaml\n  BasedOnStyle: Google\n  ColumnLimit: 119\n  DerivePointerAlignment: false\n  PointerAlignment: Left\n  AccessModifierOffset: -1\n```\n\n## Test\nTo run all tests, simply execute `bazel test //...:all`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmyte%2Fsmyte-db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmyte%2Fsmyte-db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmyte%2Fsmyte-db/lists"}