Fastest RPC in the west

Overview

smf - the fastest RPC in the West Travis-ci Build Status

We're looking for a new maintainer for the SMF project. As I have little time to keep up with issues. Please let me know by filing an issue.

smf is pronounced /smɝf/

Site Link
Mailing List https://groups.google.com/forum/#!forum/smf-dev
Documentation https://smfrpc.github.io/smf/

Official Documentation

Please visit our official documentation, it'll get you up and running in no time!

If you are using smf, drop us a line on the mailing list introducing your project.

What is smf?

smf is a new RPC system and code generation like gRPC, Cap n Proto, Apache Thrift, etc, but designed for microsecond tail latency*.

Current benchmarks in microseconds (e2e see docs)

60 byte payload latency
p50 7us
p90 8us
p99 8us
p9999 15us
p100 26us

Getting started

Please see our quick getting started on our official docs!

Issues
  • Go support for smf_gen

    Go support for smf_gen

    I just started go-smf implementation. Go is missing flatbuffers parser so now I was thinking about using smf_gen to do that, do you have any thoughts?

    enhancement help wanted design 
    opened by crackcomm 61
  • wip/dnm: cmake and git submodule support

    wip/dnm: cmake and git submodule support

    this is a wip pr for review. the primary goal of this patch is to support cmake builds with git submodules to enable smf to work well in c++/cmake project workflows. it also includes some clean-up of existing cmake files.

    this patch set can test builds and unit tests on {sid,stretch,buster,artful,zesty,fc25,fc26,fc27} x {makefiles, ninja} x {gcc, clang}. it's been tested with everything except clang since Seastar is having some issues there. you can run all of these configurations with:

    git submodule update --init --recursive
    ci/local.sh
    

    it'd be great to get some early feedback, and testing with existing workflows.

    dependencies

    the deps that were handled by ansible roles are now included as sub-modules and built with cmake, provided that support isn't already available in the a target distribution. this includes zstd, xxhash, flat buffers, google test, HDR histogram, and fast range.

    several of the deps handled by ansible did not seem to be used (e.g. roaring bitmaps, afl, pmem, etc...), so those can be added back later, or in case I missed something or they are used in separate workflows.

    I didn't run into any issues with versions of boost, so there is no special handling there.

    questions/remaining

    1. some ansible deps like cpplint aren't setup yet. it isn't strictly needed for the build, so that can added that back in, or maybe just use ansible to do the release builds when cpplint can be applied?

    2. the biggest thing left to do is get the cmake branch merged upstream in Seastar. Currently this PR points to some patches on top of a cmake branch maintained by a scylla developer. I suspect it won't be too long before that get merged.

    3. packaging. I didn't do anything with cpack. is that something that is currently in use? I'm not very familiar with cpack, but it seemed to still produce src packages. adding explicit rpm/deb packaging isn't too hard, but maybe out of scope at the moment.

    that's all I can think of right now.

    update 1 (done)

    • all of the build configurations can be run in parallel on semaphore ci, I presume. I do this with another project and its been incredibly helpful at catching early issues (https://github.com/noahdesu/zlog/blob/master/.travis.yml#L23). I don't have any experience setting up semaphore ci.

    update 2 (done)

    • the sanitizer stuff is missing

    update 3 (done)

    make sure that release/package/etc.. script are working on the new build

    update 4 (done)

    .common_build.sh can be deleted i think. just gets the nprocs

    opened by dotnwat 56
  • RPC - xor map lookup test

    RPC - xor map lookup test

    There are 2 main places in the hotpath that are lookup heavy.

    1. Method dispatch of the RPC framework.
    2. in the WAL path we do lookup of topic,partition tuples for every write.

    We need to make sure that those 2 paths are optimized.

    currently we use unordered_map.

    However other map datastructures are designed for lookups! - We do not do a lot of insertions - so it's ok if they are slow. However, the lookups have to be exceedingly fast.

    https://github.com/skarupke/flat_hash_map/blob/master/flat_hash_map.hpp

    I'm not convinced that if we stored the RPC methods in a std::vector + for loop it wouldn't be faster for example.

    This is blocked by the microbenchmark framework - i need to add the stuff for google-benchmark next.

    enhancement help wanted 
    opened by senior7515 31
  • proposal: keep public headers in common include/smf directory

    proposal: keep public headers in common include/smf directory

    Compiling the demo apps outside the smf tree, using smf as a git sub-module. This seems to work well, but the include paths are a little weird.

    For example, the app wants to include histogram stuff:

    #include "histogram/histogram_seastar_utils.h"

    but for this path to work we'd need to add the entire smf/src directory to the list of includes of the including project. alternatively, one can do:

    smf/src/include/smf/{histogram, rpc, etc...}
    

    and in the including project simply do include_directories(smf/src/include) then

    #include <smf/histogram_seastar_utils.h>

    etc...

    there are other schemes, too...

    enhancement help wanted good first issue design 
    opened by dotnwat 27
  • Use SMF as a library to send/receive data within a conventional application

    Use SMF as a library to send/receive data within a conventional application

    Hello, I have been surveying using Seastar to build a network stack for an application. However, I find out that this usually requires completely rewriting the application to adopt the seastar. When I look at the SMF, I am wondering if this RPC library can be used as a communication library within a conventional application?

    question 
    opened by luomai 20
  • DNM: cmake ng

    DNM: cmake ng

    this PR is for identifying any major issues before polishing it further. it is effectively the cooking approach without the cooking infrastructure. it works pretty well. not all dependencies have been ported over, but most. i happened to have everything on fc29 NOTE: this isn't yet integrated into the build.sh script etc....

    Usage

    cmake .
    make
    

    Current status

    [[email protected] smf-ng2]$ nice -n 19 ctest
    Test project /home/nwatkins/src/smf-ng2
          Start  1: smf_checksum_benchmark_test
     1/11 Test  #1: smf_checksum_benchmark_test ......................   Passed    7.66 sec
          Start  2: smf_fbsalloc_benchmark_test
     2/11 Test  #2: smf_fbsalloc_benchmark_test ......................   Passed   45.59 sec
          Start  3: smf_histograms_integration_test
     3/11 Test  #3: smf_histograms_integration_test ..................   Passed    0.18 sec
          Start  4: smf_rpc_integration_test
     4/11 Test  #4: smf_rpc_integration_test .........................***Failed    4.60 sec
          Start  5: smf_rpc_recv_timeout_integration_test
     5/11 Test  #5: smf_rpc_recv_timeout_integration_test ............   Passed    0.24 sec
          Start  6: smf_rpc_multiple_remote_addrs_integration_test
     6/11 Test  #6: smf_rpc_multiple_remote_addrs_integration_test ...   Passed    0.19 sec
          Start  7: smf_rpc_backpressure_integration_test
     7/11 Test  #7: smf_rpc_backpressure_integration_test ............***Failed   12.88 sec
          Start  8: smf_rpc_send_client_timeout_integration_test
     8/11 Test  #8: smf_rpc_send_client_timeout_integration_test .....***Failed   32.02 sec
          Start  9: smf_rpc_bad_msg_t_integration_test
     9/11 Test  #9: smf_rpc_bad_msg_t_integration_test ...............   Passed    0.08 sec
          Start 10: smf_randomstr_unit_test
    10/11 Test #10: smf_randomstr_unit_test ..........................   Passed    0.08 sec
          Start 11: smf_simple_hist_unit_test
    11/11 Test #11: smf_simple_hist_unit_test ........................   Passed    0.07 sec
    
    73% tests passed, 3 tests failed out of 11
    
    opened by dotnwat 15
  • cmake help! - update w/ latest seastar cmake

    cmake help! - update w/ latest seastar cmake

    #contributors/help w/ cmake pls!

    Seastar added a complicated cmake set up here:

    https://github.com/scylladb/seastar/commit/c79e9dec76186f76d1a2e48187e3073449a60bfe

    I found cmake-cooking.sh hard to understand.

    I think it does:

    ExternalProjectAdd and given how cmake build systems are I'm sure it's doing the right thing under the covers.

    It uses (i think standard ML) to generate a bash script. This bash script contains a giant string. The string is a cmake macro This cmake macro builds & passes through arguments for ExternalProjectAdd It build them and tells cmake to add it. It builds them w/ default options (we want to change some options to make them as static a build as possible)

    I'm not sure if cmake-cooking.sh is a good fit for this project to use.

    Ideally we should strive to have as a static of a compilation as we can it gives the compiler much more room for optimizing function calls etc.

    We already have a git submodules for some dependencies and some apt-get or dnf-install dependencies. The mix is less than ideal. We should do one consistently. I vote for explicitly declaring all our deps. Testing against a known set and supporting that.

    I like jessies idea of a recipe but as the main way of building this project.

    We can say we tested against a known set of dependencies. Harder to find ABI crashes and try to debug other issues in practice. Except of course for openssl / gnutls (makes making security updates easier)

    Jessie already did a lot of hardwork here: https://github.com/scylladb/seastar/blob/master/recipe/dev.cmake

    We can try to make that our main dependency file. But of course it requires cmake-cooking.sh macro. A potential route is we render it and just save it to a cooking.cmake and use it as is for the first pass.

    The ideal scenario would be for all our deps to be an ExternalProjectAdd type of defs.

    Alternative designs are welcomed.

    enhancement help wanted good first issue design 
    opened by senior7515 14
  • use cmake ExternalProject_Add

    use cmake ExternalProject_Add

    Currently, it is really hard to exclude targets and to set versions, etc on the cmake build

    https://cmake.org/cmake/help/v3.0/module/ExternalProject.html

    Effectively, it prints a bunch of warnings from different projects, it runs tests and the downside is that only mature projects have guards against them via a simple -DCMAKE_<PROJ_SPECIFIC_OPT>=OFF

    which means a bunch of custom logic for them. (non pkgfind'd things)

    
    Test project /home/agallego/workspace/smf/build_debug
        Start 1: Histogram
    1/7 Test #1: Histogram ...............................   Passed    0.05 sec
        Start 2: HistogramLogging
    2/7 Test #2: HistogramLogging ........................   Passed    0.03 sec
        Start 3: HistogramAtomic
    3/7 Test #3: HistogramAtomic .........................   Passed    0.00 sec
        Start 4: flattests
    4/7 Test #4: flattests ...............................   Passed    0.04 sec
        Start 5: smf_histograms_integration_test
    5/7 Test #5: smf_histograms_integration_test .........   Passed    0.20 sec
        Start 6: smf_rpc_integration_test
    6/7 Test #6: smf_rpc_integration_test ................   Passed    0.25 sec
        Start 7: smf_rpc_recv_timeout_integration_test
    7/7 Test #7: smf_rpc_recv_timeout_integration_test ...   Passed    0.20 sec
    
    100% tests passed, 0 tests failed out of 7
    
    
    enhancement help wanted good first issue 
    opened by senior7515 13
  • [DNM] seastar cmake ng

    [DNM] seastar cmake ng

    builds OK, please test before merging :)

    also, it does seem that the blessed way of using seastar as a dependency in an application is for the application to adopt the cmake-cooking way of things, and use seastar as an "ingredient". that integration looks pretty nice as you can control the build (e.g. turn of tests etc...). so maybe that is a good next step, but will just need to be investigated. perhaps if this works we merge and create a ticket for investigating the cooking show version.

    opened by dotnwat 12
  • Docker test image

    Docker test image

    Maybe we could build and deploy an image in CI with entire built smf but mainly

    1. demo_apps - client and server for testing with Go (and later node.js) implementation I am currently working on
    2. smf_gen - can be useful for someone
    3. load_gen - not sure what toolchain do you use to graph latencies but it would be useful to have it too :+1:

    This all would be mainly useful for CI testing and this image could be built as the test.

    I can submit a pull request just tell me your requirements, OS etc. (Ubuntu 16.04?)

    enhancement help wanted good first issue design 
    opened by crackcomm 12
  • rpc_generated and CMAKE_BUILD_TYPE

    rpc_generated and CMAKE_BUILD_TYPE

    I recently noticed that on release builds the rpc_generated.h file is produced using 64-bit types here:

    https://github.com/smfrpc/smf/blob/master/src/include/smf/rpc_generated.h#L630

    And with a debug build the same is produced with a 32-bit type. Oddly, it looks like 64-bit is hardcoded in the flatbuffers idl generator.

    I'm wondering if anyone has seen this before I go looking deeper.

    opened by dotnwat 11
  • build(deps): bump nokogiri from 1.12.5 to 1.13.6 in /docs

    build(deps): bump nokogiri from 1.12.5 to 1.13.6 in /docs

    Bumps nokogiri from 1.12.5 to 1.13.6.

    Release notes

    Sourced from nokogiri's releases.

    1.13.6 / 2022-05-08

    Security

    • [CRuby] Address CVE-2022-29181, improper handling of unexpected data types, related to untrusted inputs to the SAX parsers. See GHSA-xh29-r2w5-wx8m for more information.

    Improvements

    • {HTML4,XML}::SAX::{Parser,ParserContext} constructor methods now raise TypeError instead of segfaulting when an incorrect type is passed.

    sha256:

    58417c7c10f78cd1c0e1984f81538300d4ea98962cfd3f46f725efee48f9757a  nokogiri-1.13.6-aarch64-linux.gem
    a2b04ec3b1b73ecc6fac619b41e9fdc70808b7a653b96ec97d04b7a23f158dbc  nokogiri-1.13.6-arm64-darwin.gem
    4437f2d03bc7da8854f4aaae89e24a98cf5c8b0212ae2bc003af7e65c7ee8e27  nokogiri-1.13.6-java.gem
    99d3e212bbd5e80aa602a1f52d583e4f6e917ec594e6aa580f6aacc253eff984  nokogiri-1.13.6-x64-mingw-ucrt.gem
    a04f6154a75b6ed4fe2d0d0ff3ac02f094b54e150b50330448f834fa5726fbba  nokogiri-1.13.6-x64-mingw32.gem
    a13f30c2863ef9e5e11240dd6d69ef114229d471018b44f2ff60bab28327de4d  nokogiri-1.13.6-x86-linux.gem
    63a2ca2f7a4f6bd9126e1695037f66c8eb72ed1e1740ef162b4480c57cc17dc6  nokogiri-1.13.6-x86-mingw32.gem
    2b266e0eb18030763277b30dc3d64337f440191e2bd157027441ac56a59d9dfe  nokogiri-1.13.6-x86_64-darwin.gem
    3fa37b0c3b5744af45f9da3e4ae9cbd89480b35e12ae36b5e87a0452e0b38335  nokogiri-1.13.6-x86_64-linux.gem
    b1512fdc0aba446e1ee30de3e0671518eb363e75fab53486e99e8891d44b8587  nokogiri-1.13.6.gem
    

    1.13.5 / 2022-05-04

    Security

    Dependencies

    • [CRuby] Vendored libxml2 is updated from v2.9.13 to v2.9.14.

    Improvements

    • [CRuby] The libxml2 HTML4 parser no longer exhibits quadratic behavior when recovering some broken markup related to start-of-tag and bare < characters.

    Changed

    • [CRuby] The libxml2 HTML4 parser in v2.9.14 recovers from some broken markup differently. Notably, the XML CDATA escape sequence <![CDATA[ and incorrectly-opened comments will result in HTML text nodes starting with &lt;! instead of skipping the invalid tag. This behavior is a direct result of the quadratic-behavior fix noted above. The behavior of downstream sanitizers relying on this behavior will also change. Some tests describing the changed behavior are in test/html4/test_comments.rb.

    ... (truncated)

    Changelog

    Sourced from nokogiri's changelog.

    1.13.6 / 2022-05-08

    Security

    • [CRuby] Address CVE-2022-29181, improper handling of unexpected data types, related to untrusted inputs to the SAX parsers. See GHSA-xh29-r2w5-wx8m for more information.

    Improvements

    • {HTML4,XML}::SAX::{Parser,ParserContext} constructor methods now raise TypeError instead of segfaulting when an incorrect type is passed.

    1.13.5 / 2022-05-04

    Security

    Dependencies

    • [CRuby] Vendored libxml2 is updated from v2.9.13 to v2.9.14.

    Improvements

    • [CRuby] The libxml2 HTML parser no longer exhibits quadratic behavior when recovering some broken markup related to start-of-tag and bare < characters.

    Changed

    • [CRuby] The libxml2 HTML parser in v2.9.14 recovers from some broken markup differently. Notably, the XML CDATA escape sequence <![CDATA[ and incorrectly-opened comments will result in HTML text nodes starting with &lt;! instead of skipping the invalid tag. This behavior is a direct result of the quadratic-behavior fix noted above. The behavior of downstream sanitizers relying on this behavior will also change. Some tests describing the changed behavior are in test/html4/test_comments.rb.

    1.13.4 / 2022-04-11

    Security

    Dependencies

    • [CRuby] Vendored zlib is updated from 1.2.11 to 1.2.12. (See LICENSE-DEPENDENCIES.md for details on which packages redistribute this library.)
    • [JRuby] Vendored Xerces-J (xerces:xercesImpl) is updated from 2.12.0 to 2.12.2.
    • [JRuby] Vendored nekohtml (org.cyberneko.html) is updated from a fork of 1.9.21 to 1.9.22.noko2. This fork is now publicly developed at https://github.com/sparklemotion/nekohtml

    ... (truncated)

    Commits
    • b7817b6 version bump to v1.13.6
    • 61b1a39 Merge pull request #2530 from sparklemotion/flavorjones-check-parse-memory-ty...
    • 83cc451 fix: {HTML4,XML}::SAX::{Parser,ParserContext} check arg types
    • 22c9e5b version bump to v1.13.5
    • 6155881 doc: update CHANGELOG for v1.13.5
    • c519a47 Merge pull request #2527 from sparklemotion/2525-update-libxml-2_9_14-v1_13_x
    • 66c2886 dep: update libxml2 to v2.9.14
    • b7c4cc3 test: unpend the LIBXML_LOADED_VERSION test on freebsd
    • eac7934 dev: require yaml
    • f3521ba style(rubocop): pend Style/FetchEnvVar for now
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • How to build behind a proxy

    How to build behind a proxy

    Describe the bug The cmake process is trying to download other packages. They all fail when I'm behind a proxy. It is not clear what tool is used to download, but it fails. The environment is set with a correct http/https proxies. wget works, so does curl.

    To Reproduce Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots If applicable, add screenshots to help explain your problem.

    Asciinema

    see https://asciinema.org/ for recording video in terminal

    ** Environment Info **

    • operating system
    • git hash
    • compiler

    Additional context Add any other context about the problem here.

    opened by dan-bar-dov 1
  • Manual build script appears broken under Fedora 31, Ubuntu 19.04, 20.04.

    Manual build script appears broken under Fedora 31, Ubuntu 19.04, 20.04.

    Describe the bug Running the build script errors out with the following message:

    ninja: build stopped: subcommand failed.
    CMake Error at CMakeLists.txt:51 (message):
      Build step for deps-build failed: 1
    
    
    -- Configuring incomplete, errors occurred!
    See also "/root/smf/build/release/CMakeFiles/CMakeOutput.log".
    

    I get this not just on Ubuntu 19.04, but also Ubuntu 20.04, and Fedora 31.

    To Reproduce Steps to reproduce the behavior:

    1. docker run -it ubuntu:disco
    2. apt update -y && apt upgrade -y
    3. apt install git
    4. git clone https://github.com/smfrpc/smf.git
    5. cd smf
    6. ./install-deps.sh
    7. ./tools/build.sh -r
    8. Build fails per text above.

    Expected behavior I expected a successful release build.

    Environment Info

    • Ubuntu 19.04, 20.04, and Fedora 31 running in Docker containers
    • On current master branch.
    • GCC 8 and 9
    opened by jriehl 11
  • seastar::metrics::double_registration

    seastar::metrics::double_registration

    Describe the bug "seastar::metrics::double_registration: registering metrics twice for metrics: smf::rpc_server_active_connections" when run several rpc servers at the same time.

    To Reproduce for (int i = 0; i < 10; i++) { smf::rpc_server_args opts; opts.rpc_port = ports[i]; auto server = seastar::make_shared<smf::rpc_server>(opts); ... }

    To Fix make metric name unique for each server, for example, "smf::rpc_server(" + args.ip + ":" + seastar::to_sstring(args.rpc_port) + ")" instead of "smf::rpc_server" only.

    opened by laomd 2
  • `smfc_gen` cmake function should create a library with <INTERFACE>

    `smfc_gen` cmake function should create a library with

    Effectively, you should be able to call ninja -j1 <smfc_targetname> and have it codegen code for you.

    Because the outputs are non-libraries, you cannot force a particular file codegen

    opened by senior7515 0
Releases(2020.10)
RPC++ is a tool for Discord RPC (Rich Presence) to let your friends know about your Linux system

RPC++ RPC++ is a tool for Discord RPC (Rich Presence) to let your friends know about your Linux system Installing requirements Arch based systems pacm

grialion 3 Jun 13, 2022
A local DNS server to obtain the fastest website IP for the best Internet experience

A local DNS server to obtain the fastest website IP for the best Internet experience

Nick Peng 5k Jun 26, 2022
LAppS - Lua Application Server for micro-services with default communication over WebSockets. The fastest and most vertically scalable WebSockets server implementation ever. Low latency C++ <-> Lua stack roundtrip.

LAppS - Lua Application Server This is an attempt to provide very easy to use Lua Application Server working over WebSockets protocol (RFC 6455). LApp

null 47 Apr 25, 2022
BingBing 53 Jun 10, 2022
🚀 Discord RPC Blocker for Lunar Client

?? Soyuz Soyuz has one simple purpose; listen for incoming Discord RPC requests from Lunar Client and block them! Limitations Windows only Soon to com

Fuwn 6 Apr 21, 2022
C++ framework for json-rpc (json remote procedure call)

I am currently working on a new C++17 implementation -> json-rpc-cxx. Master Develop | libjson-rpc-cpp This framework provides cross platform JSON-RPC

Peter Spiess-Knafl 795 Jun 27, 2022
modern C++(C++11), simple, easy to use rpc framework

modern C++(C++11), simple, easy to use rpc framework

qicosmos 1k Jun 22, 2022
gRPC - An RPC library and framework Baind Unity 3D Project

Unity 3D Compose for Desktop and Android, a modern UI framework for C ++ , C# that makes building performant and beautiful user interfaces easy and enjoyable.

Md Raihan 4 May 19, 2022
RPC based on C++ Workflow. Supports Baidu bRPC, Tencent tRPC, thrift protocols.

中文版入口 SRPC Introduction SRPC is an RPC system developed by Sogou. Its main features include: Base on Sogou C++ Workflow, with the following features:

C++ Workflow Project and Ecosystem 1.3k Jun 20, 2022
Gromox - Groupware server backend with MAPI/HTTP, RPC/HTTP, IMAP, POP3 and PHP-MAPI support for grommunio

Gromox is the central groupware server component of grommunio. It is capable of serving as a replacement for Microsoft Exchange and compatibles. Conne

grommunio 119 Jun 27, 2022
Apache Thrift is a lightweight, language-independent software stack for point-to-point RPC implementation

Apache Thrift Introduction Thrift is a lightweight, language-independent software stack for point-to-point RPC implementation. Thrift provides clean a

The Apache Software Foundation 9.2k Jun 24, 2022
✔️The smallest header-only GUI library(4 KLOC) for all platforms

Welcome to GUI-lite The smallest header-only GUI library (4 KLOC) for all platforms. 中文 Lightweight ✂️ Small: 4,000+ lines of C++ code, zero dependenc

null 6.3k Jun 27, 2022
Industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances and thousands kinds of services. "brpc" means "better RPC".

中文版 An industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances(not counting clients) and thousands kinds of services. "brpc" m

The Apache Software Foundation 13.3k Jun 20, 2022
Packio - An asynchronous msgpack-RPC and JSON-RPC library built on top of Boost.Asio.

Header-only | JSON-RPC | msgpack-RPC | asio | coroutines This library requires C++17 and is designed as an extension to boost.asio. It will let you bu

Quentin Chateau 46 Jun 15, 2022
RPC++ is a tool for Discord RPC (Rich Presence) to let your friends know about your Linux system

RPC++ RPC++ is a tool for Discord RPC (Rich Presence) to let your friends know about your Linux system Installing requirements Arch based systems pacm

grialion 3 Jun 13, 2022
The fastest feature-rich C++11/14/17/20 single-header testing framework

master branch Windows All dev branch Windows All doctest is a new C++ testing framework but is by far the fastest both in compile times (by orders of

Viktor Kirilov 4k Jun 23, 2022
Jsmn is a world fastest JSON parser/tokenizer. This is the official repo replacing the old one at Bitbucket

JSMN jsmn (pronounced like 'jasmine') is a minimalistic JSON parser in C. It can be easily integrated into resource-limited or embedded projects. You

Serge Zaitsev 3k Jun 28, 2022
Fastest Integer Compression

TurboPFor: Fastest Integer Compression TurboPFor: The new synonym for "integer compression" ?? (2019.11) ALL functions now available for 64 bits ARMv8

powturbo 616 Jun 23, 2022
TurboRLE-Fastest Run Length Encoding

TurboRLE: Turbo Run Length Encoding Efficient and fastest Run Length Encoding library ?? The fastest now up to 50% more faster incl. SSE/AVX2 + improv

powturbo 235 May 17, 2022
The fastest feature-rich C++11/14/17/20 single-header testing framework

master branch Windows All dev branch Windows All doctest is a new C++ testing framework but is by far the fastest both in compile times (by orders of

Viktor Kirilov 4k Jun 18, 2022
hashcat is the world's fastest and most advanced password recovery utility

hashcat is the world's fastest and most advanced password recovery utility, supporting five unique modes of attack for over 300 highly-optimized hashing algorithms. hashcat currently supports CPUs, GPUs, and other hardware accelerators on Linux, Windows, and macOS, and has facilities to help enable distributed password cracking.

null 14.7k Jun 20, 2022
Python bindings for Wasm3, the fastest WebAssembly interpreter

pywasm3 Python bindings for Wasm3, the fastest WebAssembly interpreter Main repository: Wasm3 project Install # Latest release: pip3 install pywasm3

Wasm3 Labs 46 Jun 17, 2022
A local DNS server to obtain the fastest website IP for the best Internet experience

A local DNS server to obtain the fastest website IP for the best Internet experience

Nick Peng 5k Jun 26, 2022
Typesafe, Generic & Fastest Set Data structure implementation in C

Typesafe & Fast as fuck Set in C Key Features Extremely fast non-cryptographic hash algorithm XXHash Complete Typesafe APIs Double Hashing to avoid bo

Robus Gauli 4 Sep 6, 2021
LAppS - Lua Application Server for micro-services with default communication over WebSockets. The fastest and most vertically scalable WebSockets server implementation ever. Low latency C++ <-> Lua stack roundtrip.

LAppS - Lua Application Server This is an attempt to provide very easy to use Lua Application Server working over WebSockets protocol (RFC 6455). LApp

null 47 Apr 25, 2022
The fastest database-library on Android OS.

Android SQLite3 NDK 封装 Demo下载 (操作:按钮新增 按钮查询 点按编辑 长按删除) 写在前面 sqlite3 开源、集成简单(现在的版本只有2个文件 sqlite3.h sqlite3.c) 这个库抽离自 Telegram 的开源代码、作者:DrKLO 我个人感觉 Tele

水银灯、 2 Dec 27, 2021
Elofetch - The fastest neofetch ever made

Elofetch Elofetch - The fastest neofetch ever made Elofetch is a fast program written in C. Like neofetch, this program will show you software and har

ProX 5 May 30, 2022
Fastest-lap is an optimal laptime simulator, written in C++, and with a python API.

Fastest-lap ?? ?? Fastest-lap is an optimal laptime simulator, written in C++, and with a python API. What can be done Numerical G-G diagram: given a

Juan Manzanero 259 Jun 25, 2022
React-native-quick-sqlite - ⚡️ The fastest SQLite implementation for react-native.

React Native Quick SQLite The **fastest** SQLite implementation for react-native. Copy typeORM patch-package from example dir npm i react-nati

Oscar Franco 280 Jun 22, 2022