The gRPC library for Rust built on C Core library and futures

Overview

gRPC-rs

gRPC-rs is a Rust wrapper of gRPC Core. gRPC is a high performance, open source universal RPC framework that puts mobile and HTTP/2 first.

Crates.io docs.rs Build Status Build Status

Status

This project is still under development. The following features with the check marks are supported:

  • Basic asynchronous unary/steaming call
  • SSL
  • Generic call
  • Connection level compression
  • Interoperability test
  • QPS benchmark
  • Custom metadata
  • Health check
  • Reflection
  • Authentication
  • Load balance, client side is fully supported, server side load report is not implemented yet.

Prerequisites

  • CMake >= 3.8.0
  • Rust >= 1.36.0
  • binutils >= 2.22
  • LLVM and Clang >= 3.9 if you need to generate bindings at compile time.
  • By default, the secure feature is provided by boringssl. You can also use openssl instead by enabling openssl feature.

For Linux and MacOS, you also need to install gcc 4.9+ (or clang) too.

Bindings are pre-generated for x86_64/arm64 Linux. For other platforms, bindings are generated at compile time.

For Windows, you also need to install following software:

  • Active State Perl
  • yasm
  • Visual Studio 2015+

Build

$ ./scripts/reset-submodule.cmd # if you just cloned the repository
$ cargo build

Error linking OpenSSL

If you're getting linker errors when building your project using gRPC-rs, head down to the openssl feature section for a possible fix.

Usage

To generate the sources from proto files:

Option 1 - Manual Generation

  1. Install the protobuf compiler:
$ cargo install protobuf-codegen
  1. Install the gRPC compiler:
$ cargo install grpcio-compiler
  1. Generate the sources:
$ protoc --rust_out=. --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_rust_plugin` example.proto

Option 2 - Programmatic Generation

Programmatic generation can be used to generate Rust modules from proto files via your build.rs by using protoc-grpcio.

For more information and examples see README.

To include this project as a dependency:

[dependencies]
grpcio = "0.6"

Feature secure

secure feature enables support for TLS encryption and some authentication mechanism. When you do not need it, for example when working in intranet, you can disable it by using the following configuration:

[dependencies]
grpcio = { version = "0.6", default-features = false, features = ["protobuf-codec"] }

Feature prost-codec and protobuf-codec

gRPC-rs uses protobuf crate by default. If you want to use prost instead, you can enable prost-codec feature. You probably only want to enable only one of the two features. Though grpcio is completely fine with both features enabled at the same time, grpcio-compiler will not going to work as expected.

Feature openssl and openssl-vendored

gRPC-rs comes vendored with gRPC Core, which by default uses BoringSSL instead of OpenSSL. This may cause linking issues due to symbol clashes and/or missing symbols when another one of your dependencies uses OpenSSL. To resolve this, you can tell gRPC-rs to use OpenSSL too by specifying "openssl" in your Cargo.toml's features list for gprcio, which requires openssl (>=1.0.2). E.g.:

[dependencies]
grpcio = { version = "0.6", features = ["openssl"] }

Feature openssl-vendored is the same as feature openssl except it will build openssl from bundled sources.

Performance

See benchmark to find out how to run a benchmark by yourself.

Cross Compile

See cross_compile

Contributing

Make sure to format and test the code before sending a PR.

If the content in grpc-sys/grpc is updated, you may need to regenerate bindings:

$ ./scripts/generate-bindings.sh
Comments
  • Linking fails against libssl on OS X

    Linking fails against libssl on OS X

    Describe the bug I found this originally on another project, but I can reproduce the same thing against the grpc-rs repo. The final step of cargo build fails with a linker error:

    [...]
      = note: ld: warning: directory not found for option '-L/Users/habnabit/Projects/20181023-activity-aggregator/grpc-rs/target/debug/build/grpcio-sys-88e0b97a2cd094d1/out/build/third_party/boringssl/ssl'
              ld: warning: directory not found for option '-L/Users/habnabit/Projects/20181023-activity-aggregator/grpc-rs/target/debug/build/grpcio-sys-88e0b97a2cd094d1/out/build/third_party/boringssl/crypto'
              ld: library not found for -lssl
              clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    Full output here: https://gist.github.com/habnabit/1b9a0cf0d0454db3ee98e7bb46f40624

    To Reproduce On a clean grpc-rs checkout:

    $ git checkout v0.4.4
    $ git submodule update --init --recursive
    $ OPENSSL_ROOT_DIR=/usr/local/opt/openssl cargo build --features openssl --examples
    

    Expected behavior Presumably this build should succeed. I don't think I have a broken openssl.

    System information macOS 10.14.5; homebrew openssl.

    $ cargo version
    cargo 1.35.0 (6f3e9c367 2019-04-04)
    $ rustc --version
    rustc 1.35.0 (3c235d560 2019-05-20)
    $ ls -ld /usr/local/opt/openssl
    lrwxr-xr-x  1 habnabit  admin  24 May 31 20:26 /usr/local/opt/openssl -> ../Cellar/openssl/1.0.2r
    
    opened by habnabit 35
  • Zero copy for send

    Zero copy for send

    TODOs

    • [X] Fix benchmark compilation
    • [x] Fix link error (multiple symbol definitions)
    • [x] Fix size_t 6 in Rust becomes size_t in C 140184721559552 via FFI (140184721559552+6 is 2^47)
    • [x] Sync master changes
    • [x] Improve GrpcSlice
    • [x] Improve GrpcByteBuffer
    • [x] (New!) Support bytes in prost

    Now (updated at: 23, April 2019)

    Since @nrc has introduced prost support (instead of rust-protobuf) which is natively using "bytes", we no longer have that one copy for send which is stated to be necessary below. Yay!

    Before:

    • User code deserialize (particularly, the protobuf library), producing a list of &[u8], we copied the data into a Vec<u8>, this is done internally in the protobuf library (copy 0)
    • We create a grpc_slice (a ref-counted single string) by copying the Vec<u8> mentioned above (copy 1)
    • We create a grpc_byte_buffer (a ref-counted list of strings) from only one grpc_slice
    • Send

    Total copy: 2

    After:

    • User code deserialize (particularly, the protobuf library), producing a list of &[u8], we copied each produced &[u8] and collect them into a grpc_byte_buffer (copy 0)
    • Send

    Total copy: 1

    The reason why still one copy:

    • Rust manages its own allocated memory'a lifetime
    • C-side uses a ref-count mechanism to manage the lifetime of objects
    • We either need to longer the Rust objects' lifetime or copy once
    • Tried to longer Rust objects' lifetime in #225
      • Result: grpc supports buffer-hint which requires a much longer lifetime, it's too hard to manage the lifetime in such case
      • This is why I closed #225
    Enhancement 
    opened by ice1000 26
  • Server-side metadata for all call types

    Server-side metadata for all call types

    Related features: See issue #460

    Description of feature: Implement metadata sent from the server and read by the client.

    Implementation: ClientUnaryReceiver gains a .headers() and .trailer() method to convey metadata sent by server.

    Checklist:

    • [x] cargo fmt -- --check passes.
    • [x] cargo +nightly clippy has no warnings.
    • [x] cargo test passes.
    opened by christian-oudard 20
  • grpc-sys 0.4.2 fails to build - but 0.4.1 builds fine

    grpc-sys 0.4.2 fails to build - but 0.4.1 builds fine

    Describe the bug

    0.4.2 fails to build for us with CentOS 7.

    To Reproduce

    On CentOS 7 run cargo build against a crate which depends on either grpc-sys 0.4.2, or grpc-sys 0.4.1

    With grpc-sys 0.4.2, the following is seen:

    error: failed to run custom build command for `grpcio-sys v0.4.2`
    process didn't exit successfully: `/target/debug/build/grpcio-sys-840781b2e44e9c86/build-script-build` (exit code: 101)
    --- stdout
    cargo:rerun-if-changed=grpc_wrap.cc
    cargo:rerun-if-changed=grpc
    cargo:rerun-if-env-changed=GRPCIO_SYS_USE_PKG_CONFIG
    cargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS
    running: "cmake" "/opt/rust/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.4.2/grpc" "-DGO_EXECUTABLE=fake-go-nonexist" "-DgRPC_INSTALL=false" "-DgRPC_BUILD_CSHARP_EXT=false" "-DgRPC_BUILD_CODEGEN=false" "-DCMAKE_INSTALL_PREFIX=.../target/debug/build/grpcio-sys-f45f9c164b4a8726/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/local/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=Debug"
    -- The C compiler identification is GNU 4.8.5
    -- The CXX compiler identification is GNU 4.8.5
    -- Check for working C compiler: /usr/local/bin/cc
    -- Check for working C compiler: /usr/local/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Looking for sys/types.h
    -- Looking for sys/types.h - found
    -- Looking for stdint.h
    -- Looking for stdint.h - found
    -- Looking for stddef.h
    -- Looking for stddef.h - found
    -- Check size of off64_t
    -- Check size of off64_t - done
    -- Looking for fseeko
    -- Looking for fseeko - found
    -- Looking for unistd.h
    -- Looking for unistd.h - found
    -- Renaming
    --     /opt/rust/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.4.2/grpc/third_party/zlib/zconf.h
    -- to 'zconf.h.included' because this file is included with zlib
    -- but CMake generates it automatically in the build directory.
    -- Looking for res_servicename in resolv
    -- Looking for res_servicename in resolv - not found
    -- Looking for gethostbyname in nsl
    -- Looking for gethostbyname in nsl - found
    -- Looking for gethostbyname in socket
    -- Looking for gethostbyname in socket - not found
    -- Looking for clock_gettime in rt
    -- Looking for clock_gettime in rt - found
    -- Looking for include file sys/socket.h
    -- Looking for include file sys/socket.h - found
    -- Looking for include file arpa/inet.h
    -- Looking for include file arpa/inet.h - found
    -- Looking for include file arpa/nameser_compat.h
    -- Looking for include file arpa/nameser_compat.h - found
    -- Looking for include file arpa/nameser.h
    -- Looking for include file arpa/nameser.h - found
    -- Looking for include file assert.h
    -- Looking for include file assert.h - found
    -- Looking for include file errno.h
    -- Looking for include file errno.h - found
    -- Looking for include file fcntl.h
    -- Looking for include file fcntl.h - found
    -- Looking for include file inttypes.h
    -- Looking for include file inttypes.h - found
    -- Looking for include file limits.h
    -- Looking for include file limits.h - found
    -- Looking for include file malloc.h
    -- Looking for include file malloc.h - found
    -- Looking for include file memory.h
    -- Looking for include file memory.h - found
    -- Looking for include file netdb.h
    -- Looking for include file netdb.h - found
    -- Looking for include file netinet/in.h
    -- Looking for include file netinet/in.h - found
    -- Looking for include file netinet/tcp.h
    -- Looking for include file netinet/tcp.h - found
    -- Looking for include file net/if.h
    -- Looking for include file net/if.h - found
    -- Looking for include file signal.h
    -- Looking for include file signal.h - found
    -- Looking for include file socket.h
    -- Looking for include file socket.h - not found
    -- Looking for include file stdbool.h
    -- Looking for include file stdbool.h - found
    -- Looking for include file stdlib.h
    -- Looking for include file stdlib.h - found
    -- Looking for include file strings.h
    -- Looking for include file strings.h - found
    -- Looking for include file string.h
    -- Looking for include file string.h - found
    -- Looking for include file stropts.h
    -- Looking for include file stropts.h - not found
    -- Looking for include file sys/ioctl.h
    -- Looking for include file sys/ioctl.h - found
    -- Looking for include file sys/param.h
    -- Looking for include file sys/param.h - found
    -- Looking for include file sys/select.h
    -- Looking for include file sys/select.h - found
    -- Looking for include file sys/stat.h
    -- Looking for include file sys/stat.h - found
    -- Looking for include file sys/time.h
    -- Looking for include file sys/time.h - found
    -- Looking for include file sys/uio.h
    -- Looking for include file sys/uio.h - found
    -- Looking for include file time.h
    -- Looking for include file time.h - found
    -- Looking for include file dlfcn.h
    -- Looking for include file dlfcn.h - found
    -- Looking for include file unistd.h
    -- Looking for include file unistd.h - found
    -- Looking for include files winsock2.h, windows.h
    -- Looking for include files winsock2.h, windows.h - not found
    -- Looking for 3 include files winsock2.h, ..., windows.h
    -- Looking for 3 include files winsock2.h, ..., windows.h - not found
    -- Looking for include files winsock.h, windows.h
    -- Looking for include files winsock.h, windows.h - not found
    -- Looking for include file windows.h
    -- Looking for include file windows.h - not found
    -- Performing Test HAVE_SOCKLEN_T
    -- Performing Test HAVE_SOCKLEN_T - Success
    -- Performing Test HAVE_TYPE_SOCKET
    -- Performing Test HAVE_TYPE_SOCKET - Failed
    -- Performing Test HAVE_BOOL_T
    -- Performing Test HAVE_BOOL_T - Success
    -- Performing Test HAVE_SSIZE_T
    -- Performing Test HAVE_SSIZE_T - Success
    -- Performing Test HAVE_LONGLONG
    -- Performing Test HAVE_LONGLONG - Success
    -- Performing Test HAVE_SIG_ATOMIC_T
    -- Performing Test HAVE_SIG_ATOMIC_T - Success
    -- Performing Test HAVE_STRUCT_ADDRINFO
    -- Performing Test HAVE_STRUCT_ADDRINFO - Success
    -- Performing Test HAVE_STRUCT_IN6_ADDR
    -- Performing Test HAVE_STRUCT_IN6_ADDR - Success
    -- Performing Test HAVE_STRUCT_SOCKADDR_IN6
    -- Performing Test HAVE_STRUCT_SOCKADDR_IN6 - Success
    -- Performing Test HAVE_STRUCT_SOCKADDR_STORAGE
    -- Performing Test HAVE_STRUCT_SOCKADDR_STORAGE - Success
    -- Performing Test HAVE_STRUCT_TIMEVAL
    -- Performing Test HAVE_STRUCT_TIMEVAL - Success
    -- Looking for AF_INET6
    -- Looking for AF_INET6 - found
    -- Looking for O_NONBLOCK
    -- Looking for O_NONBLOCK - found
    -- Looking for FIONBIO
    -- Looking for FIONBIO - found
    -- Looking for SIOCGIFADDR
    -- Looking for SIOCGIFADDR - found
    -- Looking for MSG_NOSIGNAL
    -- Looking for MSG_NOSIGNAL - found
    -- Looking for PF_INET6
    -- Looking for PF_INET6 - found
    -- Looking for SO_NONBLOCK
    -- Looking for SO_NONBLOCK - not found
    -- Looking for CLOCK_MONOTONIC
    -- Looking for CLOCK_MONOTONIC - found
    -- Performing Test HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
    -- Performing Test HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID - Success
    -- Performing Test HAVE_LL
    -- Performing Test HAVE_LL - Success
    -- Looking for bitncmp
    -- Looking for bitncmp - not found
    -- Looking for closesocket
    -- Looking for closesocket - not found
    -- Looking for CloseSocket
    -- Looking for CloseSocket - not found
    -- Looking for connect
    -- Looking for connect - found
    -- Looking for fcntl
    -- Looking for fcntl - found
    -- Looking for freeaddrinfo
    -- Looking for freeaddrinfo - found
    -- Looking for getaddrinfo
    -- Looking for getaddrinfo - found
    -- Looking for getenv
    -- Looking for getenv - found
    -- Looking for gethostbyaddr
    -- Looking for gethostbyaddr - found
    -- Looking for gethostbyname
    -- Looking for gethostbyname - found
    -- Looking for gethostname
    -- Looking for gethostname - found
    -- Looking for getnameinfo
    -- Looking for getnameinfo - found
    -- Looking for getservbyport_r
    -- Looking for getservbyport_r - found
    -- Looking for gettimeofday
    -- Looking for gettimeofday - found
    -- Looking for if_indextoname
    -- Looking for if_indextoname - found
    -- Looking for inet_net_pton
    -- Looking for inet_net_pton - not found
    -- Looking for inet_ntop
    -- Looking for inet_ntop - found
    -- Looking for inet_pton
    -- Looking for inet_pton - found
    -- Looking for ioctl
    -- Looking for ioctl - found
    -- Looking for ioctlsocket
    -- Looking for ioctlsocket - not found
    -- Looking for IoctlSocket
    -- Looking for IoctlSocket - not found
    -- Looking for recv
    -- Looking for recv - found
    -- Looking for recvfrom
    -- Looking for recvfrom - found
    -- Looking for send
    -- Looking for send - found
    -- Looking for setsockopt
    -- Looking for setsockopt - found
    -- Looking for socket
    -- Looking for socket - found
    -- Looking for strcasecmp
    -- Looking for strcasecmp - found
    -- Looking for strcmpi
    -- Looking for strcmpi - not found
    -- Looking for strdup
    -- Looking for strdup - found
    -- Looking for stricmp
    -- Looking for stricmp - not found
    -- Looking for strncasecmp
    -- Looking for strncasecmp - found
    -- Looking for strncmpi
    -- Looking for strncmpi - not found
    -- Looking for strnicmp
    -- Looking for strnicmp - not found
    -- Looking for writev
    -- Looking for writev - found
    -- Found Perl: /usr/bin/perl (found version "5.16.3") 
    -- The ASM compiler identification is GNU
    -- Found assembler: /usr/local/bin/cc
    -- Configuring done
    -- Generating done
    -- Build files have been written to: .../target/debug/build/grpcio-sys-f45f9c164b4a8726/out/build
    
    --- stderr
    CMake Warning at cmake/protobuf.cmake:48 (message):
      gRPC_PROTOBUF_PROVIDER is "module" but PROTOBUF_ROOT_DIR is wrong
    Call Stack (most recent call first):
      CMakeLists.txt:140 (include)
    
    
    CMake Warning at cmake/gflags.cmake:26 (message):
      gRPC_GFLAGS_PROVIDER is "module" but GFLAGS_ROOT_DIR is wrong
    Call Stack (most recent call first):
      CMakeLists.txt:142 (include)
    
    
    CMake Warning at cmake/benchmark.cmake:26 (message):
      gRPC_BENCHMARK_PROVIDER is "module" but BENCHMARK_ROOT_DIR is wrong
    Call Stack (most recent call first):
      CMakeLists.txt:143 (include)
    
    
    CMake Error at CMakeLists.txt:738 (target_compile_options):
      Error evaluating generator expression:
    
        $<COMPILE_LANGUAGE:CXX>
    
      Expression did not evaluate to a known generator expression
    
    
    CMake Error at CMakeLists.txt:6171 (target_compile_options):
      Error evaluating generator expression:
    
        $<COMPILE_LANGUAGE:CXX>
    
      Expression did not evaluate to a known generator expression
    ....
    thread 'main' panicked at '
    command did not execute successfully, got: exit code: 1
    
    build script failed, must exit now', /opt/rust/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.35/src/lib.rs:778:5
    note: Run with `RUST_BACKTRACE=1` for a backtrace.
    
    warning: build failed, waiting for other jobs to finish...
    error: failed to verify package tarball
    
    Caused by:
      build failed
    

    Expected behavior

    grpc-sys to build successfully.

    System information

    • CPU architecture: x86-64
    • Distribution and kernel version: CentOS 7 under Docker on Core OS.
    • SELinux on?:
    • Any other system details we should know?:

    Additional context Add any other context about the problem here.

    Build 
    opened by richardwhiuk 17
  • Rust 2018 Edition Support

    Rust 2018 Edition Support

    Is your feature request related to a problem? Please describe.

    I'd like to use generated code in a Rust 2018 edition project.

    What would it take to have grpc-rs support both Rust 2015 and 2018 editions?

    Additional context

    The release of Rust 1.31.0 on December 6th will be the first release of “Rust 2018.”

    https://blog.rust-lang.org/2018/07/27/what-is-rust-2018.html

    Enhancement 
    opened by xpe 16
  • Support authentication

    Support authentication

    This is basically a wrapper around the auth_context API of gRPC Core.

    Gives access to the Server-side API for Authenticating Clients through an RpcContext::auth_context() method.

    Even if force_client_auth=false, the client can still authenticate, and the certificate information will be available through that API if provided by the client.

    Thanks to @ian-p-cooke for the base of the patch. (#193)

    Resolves #193 Resolves #315

    Enhancement 
    opened by Ten0 15
  • centos6 build and link grpc-rs source code error: undefined reference to `__gxx_personality_v0'

    centos6 build and link grpc-rs source code error: undefined reference to `__gxx_personality_v0'

    hi, I use grpc-rs source code as grpcio's patch in my rust project, after complie succ . the link occur error, detail as below: the grpcio use method in my project Cargo.toml is

    ...
    [dependencies]
    grpcio = "*"
    ...
    [patch.crates-io]
    grpcio = { path = "./grpc-rs" }
    

    My build machine os is centos 6, I upgrade the default gcc/g++ version from 4.47 to 4.8.2:

    wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
    yum install devtoolset-2-gcc devtoolset-2-binutils
    yum install devtoolset-2-gcc-c++ devtoolset-2-binutils
    scl enable devtoolset-2 bash
    

    and then upgrade cmake version to 3.10.0-rc4. Then the compile process of my project is completed succ, but the final link process is error:

    Running `rustc --crate-name tt_agentd src/bin/main.rs --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=329f339b6b95c21e -C extra-filename=-329f339b6b95c21e --out-dir /tmp/multipkg/build/tt/target/debug/deps -L dependency=/tmp/multipkg/build/tt/target/debug/deps --extern chrono=/tmp/multipkg/build/tt/target/debug/deps/libchrono-83f205826c8cbe4a.rlib --extern clap=/tmp/multipkg/build/tt/target/debug/deps/libclap-fdb8754d03fe468d.rlib --extern flate2=/tmp/multipkg/build/tt/target/debug/deps/libflate2-ada67b65e8687c66.rlib --extern toml=/tmp/multipkg/build/tt/target/debug/deps/libtoml-01d27e87266f3d49.rlib --extern error_chain=/tmp/multipkg/build/tt/target/debug/deps/liberror_chain-ce7184105e3bc4f5.rlib --extern walkdir=/tmp/multipkg/build/tt/target/debug/deps/libwalkdir-d5b4fa10edee569d.rlib --extern protobuf=/tmp/multipkg/build/tt/target/debug/deps/libprotobuf-328e3d5ed8378a3e.rlib --extern serde=/tmp/multipkg/build/tt/target/debug/deps/libserde-0291d3120fb722a9.rlib --extern futures=/tmp/multipkg/build/tt/target/debug/deps/libfutures-1b9182b76cdcf9bb.rlib --extern tar=/tmp/multipkg/build/tt/target/debug/deps/libtar-2709790813f55833.rlib --extern tempdir=/tmp/multipkg/build/tt/target/debug/deps/libtempdir-8121eea7baa9d710.rlib --extern grpcio=/tmp/multipkg/build/tt/target/debug/deps/libgrpcio-764d63f6dc20aa0a.rlib --extern hostname=/tmp/multipkg/build/tt/target/debug/deps/libhostname-dc250aee9cb87a9a.rlib --extern tt_proto=/tmp/multipkg/build/tt/target/debug/deps/libtt_proto-6fcd2500f251c566.rlib --extern serde_json=/tmp/multipkg/build/tt/target/debug/deps/libserde_json-ca366df264a2aff6.rlib --extern lazy_static=/tmp/multipkg/build/tt/target/debug/deps/liblazy_static-32480de9118a066c.rlib --extern crypto=/tmp/multipkg/build/tt/target/debug/deps/libcrypto-1dcbab75c663e65b.rlib --extern log=/tmp/multipkg/build/tt/target/debug/deps/liblog-76d0e5da518c9890.rlib --extern env_logger=/tmp/multipkg/build/tt/target/debug/deps/libenv_logger-30dd2c8d8b73c017.rlib --extern daemonize=/tmp/multipkg/build/tt/target/debug/deps/libdaemonize-2ee63a9a17dd392a.rlib --extern serde_derive=/tmp/multipkg/build/tt/target/debug/deps/libserde_derive-3331a53d2a1fcf4d.so --extern rayon=/tmp/multipkg/build/tt/target/debug/deps/librayon-4d01f1358960ca65.rlib --extern log4rs=/tmp/multipkg/build/tt/target/debug/deps/liblog4rs-f6ef6bdbff08160d.rlib --extern tt=/tmp/multipkg/build/tt/target/debug/deps/libtt-aee6ced0a9b80889.rlib -L native=/tmp/multipkg/build/tt/target/debug/build/backtrace-sys-943860c9c514961f/out/.libs -L native=/tmp/multipkg/build/tt/target/debug/build/miniz-sys-c1d19ab19aea7dca/out -L native=/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out/build -L native=/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out/build/third_party/cares -L native=/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out/build/third_party/zlib -L native=/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out/build/third_party/boringssl/ssl -L native=/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out/build/third_party/boringssl/crypto -L native=/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out -L native=/tmp/multipkg/build/tt/target/debug/build/rust-crypto-c61e52eda4d55a33/out`
    error: linking with `cc` failed: exit code: 1
      |
      = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-L" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/tmp/multipkg/build/tt/target/debug/deps/tt_agentd-329f339b6b95c21e.0.o" "-o" "/tmp/multipkg/build/tt/target/debug/deps/tt_agentd-329f339b6b95c21e" "/tmp/multipkg/build/tt/target/debug/deps/tt_agentd-329f339b6b95c21e.crate.allocator.o" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "-L" "/tmp/multipkg/build/tt/target/debug/deps" "-L" "/tmp/multipkg/build/tt/target/debug/build/backtrace-sys-943860c9c514961f/out/.libs" "-L" "/tmp/multipkg/build/tt/target/debug/build/miniz-sys-c1d19ab19aea7dca/out" "-L" "/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out/build" "-L" "/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out/build/third_party/cares" "-L" "/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out/build/third_party/zlib" "-L" "/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out/build/third_party/boringssl/ssl" "-L" "/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out/build/third_party/boringssl/crypto" "-L" "/tmp/multipkg/build/tt/target/debug/build/grpcio-sys-a451e038565f03cc/out" "-L" "/tmp/multipkg/build/tt/target/debug/build/rust-crypto-c61e52eda4d55a33/out" "-L" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/tmp/multipkg/build/tt/target/debug/deps/libtt-aee6ced0a9b80889.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libcrypto-1dcbab75c663e65b.rlib" "/tmp/multipkg/build/tt/target/debug/deps/librayon-4d01f1358960ca65.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libwalkdir-d5b4fa10edee569d.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libsame_file-51f0c58ca561678c.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libdaemonize-2ee63a9a17dd392a.rlib" "/tmp/multipkg/build/tt/target/debug/deps/liberror_chain-ce7184105e3bc4f5.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libbacktrace-0a24a00d800c5483.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libcfg_if-39407a6f5c167a50.rlib" "/tmp/multipkg/build/tt/target/debug/deps/liblog4rs-f6ef6bdbff08160d.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libserde_value-b4c3e2e6c4050fd6.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libordered_float-20975675ecb44655.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libserde_yaml-956020bc20e32987.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libyaml_rust-538e4354afb6f8e7.rlib" "/tmp/multipkg/build/tt/target/debug/deps/liblinked_hash_map-1d5a8c1b2061c143.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libtypemap-fb4413453ccfec24.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libunsafe_any-7e9009d4aefe1b79.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libtraitobject-72ce215889980bac.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libfnv-ce6acad4e6f3bda9.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libcrossbeam-c2ae04e975406371.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libantidote-f05920b405dc5e0e.rlib" "/tmp/multipkg/build/tt/target/debug/deps/liblog_mdc-5d3a1a124d9e6986.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libtt_proto-6fcd2500f251c566.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libgrpcio-764d63f6dc20aa0a.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libgrpcio_sys-6ef1eac6776f3a8d.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libfutures-1b9182b76cdcf9bb.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libprotobuf-328e3d5ed8378a3e.rlib" "/tmp/multipkg/build/tt/target/debug/deps/liblog-76d0e5da518c9890.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libbacktrace_sys-d7c5f51e838320b6.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libserde_json-ca366df264a2aff6.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libdtoa-c31ef64067a24d52.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libitoa-bb9fe302248b7433.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libserde-0291d3120fb722a9.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libhostname-dc250aee9cb87a9a.rlib" "/tmp/multipkg/build/tt/target/debug/deps/librustc_serialize-5c7e94e54f3b2493.rlib" "/tmp/multipkg/build/tt/target/debug/deps/librustc_demangle-83d9ff7249781958.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libhumantime-f510abbb8fd521fa.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libquick_error-bbcdf42bf963990f.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libchrono-6e3e657de0abbfe7.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libnum-7010fdbf340ca145.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libnum_iter-26dbda985b5a9acf.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libnum_integer-97e8ea1ab5063056.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libnum_traits-6fd04028b4ec4415.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libtime-0cd5fac6e6ca5103.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libflate2-ada67b65e8687c66.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libminiz_sys-50ff439e51f909c5.rlib" "/tmp/multipkg/build/tt/target/debug/deps/liblinked_hash_map-1b499928685848af.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libunreachable-3bde6d0dca5f0eff.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libvoid-4861444fc46bd06e.rlib" "/tmp/multipkg/build/tt/target/debug/deps/librayon_core-3f80a41970af947d.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libnum_cpus-2f6edb1d9f9d0ac0.rlib" "/tmp/multipkg/build/tt/target/debug/deps/liblazy_static-32480de9118a066c.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libcoco-bc6af71e91a88e9c.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libscopeguard-a99cb6da8aacdf01.rlib" "/tmp/multipkg/build/tt/target/debug/deps/libeither-8b850cc8c54085ac.rlib" "/tmp/multipkg/build/tt/target/debug/deps/librand-b0b8180ea869605f.rlib" "/tmp/multipkg/build/tt/target/debug/deps/liblibc-42ccb1ab9c602896.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-8eeda694d27cc3ba.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-d9be38a491a6b20b.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_jemalloc-7df0812865be3e74.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-1768097fd1bb5d0a.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc_system-38bc2ffba7aac62a.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-d4f79324c33264e2.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-e2edf8b78eb9a037.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_unicode-29181a531b1322da.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/librand-30d6b4a7069ee56b.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-ac3876fe094f9f74.rlib" "/usr/local/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-4917ae9e58e9366a.rlib" "-Wl,-Bdynamic" "-l" "util" "-l" "util" "-l" "dl" "-l" "rt" "-l" "pthread" "-l" "pthread" "-l" "gcc_s" "-l" "c" "-l" "m" "-l" "rt" "-l" "pthread" "-l" "util"
      = note: /tmp/multipkg/build/tt/target/debug/deps/libgrpcio_sys-6ef1eac6776f3a8d.rlib(lame_client.cc.o):(.data.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to `__gxx_personality_v0'
              collect2: error: ld returned 1 exit status
              
    
    error: aborting due to previous error
    
    error: Could not compile `tt`.
    

    Besides, in centos 7 machine, the build and link is ok.

    opened by dllhlx 15
  • grpcio-sys recompiling every build on non-linux platforms

    grpcio-sys recompiling every build on non-linux platforms

    Description

    When compiling (using cargo) for targets that aren't either x86_64-unknown-linux-gnu or aarch64-unknown-linux-gnu, cargo determines that grpcio-sys needs to be recompiled regardless of whether anything has changed.

    This is happening because of this line in grpcio-sys/build.rs:

    println!("cargo:rerun-if-changed=bindings/{}-bindings.rs", &target);
    

    which was introduced in this commit. There is only a -bindings.rs file for the 2 targets mentioned above. Cargo will always rerun when it encounters a missing file specified by a cargo:rerun-if-changed directive. See this comment for reference.

    To Reproduce

    This can be reproduced by compiling any package that depends on grpcio-sys (I'm using 0.5.0). For detailed log information, set the CARGO_LOG environment variable to cargo::core::compiler::fingerprint=info:

    CARGO_LOG=cargo::core::compiler::fingerprint=info cargo build
    

    The output will be something similar to:

    [2020-03-25T02:33:41Z INFO  cargo::core::compiler::fingerprint] stale: missing "/Users/kyle/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.5.0/bindings/x86_64-apple-darwin-bindings.rs"
    [2020-03-25T02:33:41Z INFO  cargo::core::compiler::fingerprint] fingerprint error for grpcio v0.5.0/Build/Target { ..: lib_target("grpcio", ["lib"], "/Users/kyle/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-0.5.0/src/lib.rs", Edition2018) }
    [2020-03-25T02:33:41Z INFO  cargo::core::compiler::fingerprint]     err: current filesystem status shows we're outdated
    [2020-03-25T02:33:41Z INFO  cargo::core::compiler::fingerprint] fingerprint error for grpcio-sys v0.5.0/Build/Target { ..: lib_target("grpcio-sys", ["lib"], "/Users/kyle/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.5.0/src/lib.rs", Edition2018) }
    [2020-03-25T02:33:41Z INFO  cargo::core::compiler::fingerprint]     err: current filesystem status shows we're outdated
    [2020-03-25T02:33:41Z INFO  cargo::core::compiler::fingerprint] fingerprint error for grpcio-sys v0.5.0/RunCustomBuild/Target { ..: custom_build_target("build-script-build", "/Users/kyle/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.5.0/build.rs", Edition2018) }
    [2020-03-25T02:33:41Z INFO  cargo::core::compiler::fingerprint]     err: current filesystem status shows we're outdated
       Compiling grpcio-sys v0.5.0
       Compiling grpcio v0.5.0
    

    System information

    • CPU architecture: x86_64
    • Distribution and kernel version: Darwin 19.3.0
    • SELinux on?: No
    opened by kylefleming 14
  • Upgrade gRPC to v1.14.2

    Upgrade gRPC to v1.14.2

    This PR upgrades the gRPC to v1.10.0, replaces core alarm with grpc++'s. Its ABI is compatible with the offical grpc.

    Please do not merge this until pingcap/grpc#12 gets merged.

    TODO:

    • [x] Fix macOS build.
    • [x] Fix Windows build.
    • [x] Fix timeout_on_sleeping_server

    Cc #197 Close #171

    gRPC Core 
    opened by overvenus 13
  • Error related to bindgen when building on alpine

    Error related to bindgen when building on alpine

    Describe the bug thread 'main' panicked at 'Unable to find libclang: "the libclang shared library at /usr/lib/libclang.so.10 could not be opened: Dynamic loading not supported"', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.51.1/src/lib.rs:1731:13 To Reproduce Steps to reproduce the behavior: cargo build --target x86_64-unknown-linux-musl Expected behavior Build successed.

    System information

    • CPU architecture:x86_64
    • Distribution and kernel version: Linux alpine latest

    Additional context All content:

    TARGET = Some("x86_64-unknown-linux-musl")
    OPT_LEVEL = Some("0")
    HOST = Some("x86_64-unknown-linux-musl")
    CXX_x86_64-unknown-linux-musl = None
    CXX_x86_64_unknown_linux_musl = None
    HOST_CXX = None
    CXX = None
    CXXFLAGS_x86_64-unknown-linux-musl = None
    CXXFLAGS_x86_64_unknown_linux_musl = None
    HOST_CXXFLAGS = None
    CXXFLAGS = None
    CRATE_CC_NO_DEFAULTS = None
    DEBUG = Some("true")
    CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
    running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "grpc/include" "-Wall" "-Wextra" "-std=c++11" "-DGRPC_SYS_SECURE" "-Werror" "-o" "/home/xxxxx/rust_sdk/target/x86_64-unknown-linux-musl/debug/build/grpcio-sys-a4affaee80d0ec98/out/grpc_wrap.o" "-c" "grpc_wrap.cc"
    exit code: 0
    AR_x86_64-unknown-linux-musl = None
    AR_x86_64_unknown_linux_musl = None
    HOST_AR = None
    AR = None
    running: "ar" "crs" "/home/xxxxx/rust_sdk/target/x86_64-unknown-linux-musl/debug/build/grpcio-sys-a4affaee80d0ec98/out/libgrpc_wrap.a" "/home/xxxxx/rust_sdk/target/x86_64-unknown-linux-musl/debug/build/grpcio-sys-a4affaee80d0ec98/out/grpc_wrap.o"
    exit code: 0
    cargo:rustc-link-lib=static=grpc_wrap
    cargo:rustc-link-search=native=/home/xxxxx/rust_sdk/target/x86_64-unknown-linux-musl/debug/build/grpcio-sys-a4affaee80d0ec98/out
    CXXSTDLIB_x86_64-unknown-linux-musl = None
    CXXSTDLIB_x86_64_unknown_linux_musl = None
    HOST_CXXSTDLIB = None
    CXXSTDLIB = None
    cargo:rustc-link-lib=stdc++
    running grpc_wrap.cc --rust-target 1.33 --default-enum-style= rust --constified-enum-module grpc_status_code --blacklist-type (__)?pthread.* --blacklist-type gpr_mu --blacklist-type gpr_cv --blacklist-type gpr_once --blacklist-function \bgpr_mu_.* --blacklist-function \bgpr_cv_.* --blacklist-function \bgpr_once_.* --impl-debug --no-derive-default --generate functions,types,vars,methods,constructors,destructors --whitelist-function \bgrpc_.* --whitelist-function \bgpr_.* --whitelist-function \bgrpcwrap_.* --whitelist-type \bgrpc_.* --whitelist-type \bgpr_.* --whitelist-type \bgrpcwrap_.* --whitelist-type \bcensus_context.* --whitelist-type \bverify_peer_options.* --whitelist-var \bGRPC_.* -- -DGRPC_SYS_SECURE -xc++ -I./grpc/include -std=c++11 ./grpc/include/grpc/compression.h ./grpc/include/grpc/grpc.h ./grpc/include/grpc/grpc_cronet.h ./grpc/include/grpc/grpc_posix.h ./grpc/include/grpc/grpc_security.h ./grpc/include/grpc/impl/codegen/byte_buffer.h ./grpc/include/grpc/impl/codegen/log.h ./grpc/include/grpc/impl/codegen/port_platform.h ./grpc/include/grpc/slice.h ./grpc/include/grpc/slice_buffer.h ./grpc/include/grpc/support/alloc.h ./grpc/include/grpc/support/cpu.h ./grpc/include/grpc/support/log_windows.h ./grpc/include/grpc/support/string_util.h ./grpc/include/grpc/support/sync.h ./grpc/include/grpc/support/thd_id.h ./grpc/include/grpc/support/time.h
    
    --- stderr
    CMake Warning at cmake/protobuf.cmake:51 (message):
      gRPC_PROTOBUF_PROVIDER is "module" but PROTOBUF_ROOT_DIR is wrong
    Call Stack (most recent call first):
      CMakeLists.txt:207 (include)
    
    
    CMake Warning:
      Manually-specified variables were not used by the project:
    
        CMAKE_ASM_COMPILER
        CMAKE_ASM_FLAGS
    
    
    /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.cc: In function 'tsi_result tsi_create_ssl_client_handshaker_factory_with_options(const tsi_ssl_client_handshaker_options*, tsi_ssl_client_handshaker_factory**)':
    /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.cc:1797:44: warning: 'const SSL_METHOD* TLSv1_2_method()' is deprecated [-Wdeprecated-declarations]
     1797 |   ssl_context = SSL_CTX_new(TLSv1_2_method());
          |                                            ^
    In file included from /usr/include/openssl/e_os2.h:13,
                     from /usr/include/openssl/x509.h:14,
                     from /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.h:28,
                     from /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.cc:21:
    /usr/include/openssl/ssl.h:1889:1: note: declared here
     1889 | DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */
          | ^~~~~~~~~~~~~~~~~~
    /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.cc:1797:44: warning: 'const SSL_METHOD* TLSv1_2_method()' is deprecated [-Wdeprecated-declarations]
     1797 |   ssl_context = SSL_CTX_new(TLSv1_2_method());
          |                                            ^
    In file included from /usr/include/openssl/e_os2.h:13,
                     from /usr/include/openssl/x509.h:14,
                     from /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.h:28,
                     from /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.cc:21:
    /usr/include/openssl/ssl.h:1889:1: note: declared here
     1889 | DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */
          | ^~~~~~~~~~~~~~~~~~
    /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.cc: In function 'tsi_result tsi_create_ssl_server_handshaker_factory_with_options(const tsi_ssl_server_handshaker_options*, tsi_ssl_server_handshaker_factory**)':
    /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.cc:1961:58: warning: 'const SSL_METHOD* TLSv1_2_method()' is deprecated [-Wdeprecated-declarations]
     1961 |       impl->ssl_contexts[i] = SSL_CTX_new(TLSv1_2_method());
          |                                                          ^
    In file included from /usr/include/openssl/e_os2.h:13,
                     from /usr/include/openssl/x509.h:14,
                     from /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.h:28,
                     from /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.cc:21:
    /usr/include/openssl/ssl.h:1889:1: note: declared here
     1889 | DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */
          | ^~~~~~~~~~~~~~~~~~
    /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.cc:1961:58: warning: 'const SSL_METHOD* TLSv1_2_method()' is deprecated [-Wdeprecated-declarations]
     1961 |       impl->ssl_contexts[i] = SSL_CTX_new(TLSv1_2_method());
          |                                                          ^
    In file included from /usr/include/openssl/e_os2.h:13,
                     from /usr/include/openssl/x509.h:14,
                     from /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.h:28,
                     from /root/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.6.0/grpc/src/core/tsi/ssl_transport_security.cc:21:
    /usr/include/openssl/ssl.h:1889:1: note: declared here
     1889 | DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */
          | ^~~~~~~~~~~~~~~~~~
    thread 'main' panicked at 'Unable to find libclang: "the `libclang` shared library at /usr/lib/libclang.so.10 could not be opened: Dynamic loading not supported"', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.51.1/src/lib.rs:1731:13
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    
    opened by Serinalice 12
  • Build error when generate bindings to gRPC in CentOS

    Build error when generate bindings to gRPC in CentOS

    Describe the bug Build error when generate bindings to gRPC in CentOS 7

    HOST = Some("x86_64-unknown-linux-gnu")
    CXX_x86_64-unknown-linux-gnu = None
    CXX_x86_64_unknown_linux_gnu = None
    HOST_CXX = None
    CXX = None
    CXXFLAGS_x86_64-unknown-linux-gnu = None
    CXXFLAGS_x86_64_unknown_linux_gnu = None
    HOST_CXXFLAGS = None
    CXXFLAGS = None
    CRATE_CC_NO_DEFAULTS = None
    DEBUG = Some("true")
    CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
    running: "c++" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-m64" "-I" "grpc/include" "-Wall" "-Wextra" "-std=c++11" "-DGRPC_SYS_SECURE" "-Werror" "-o" "/home/lxt/Projects/grpc-rs/target/debug/build/grpcio-sys-3e86be41c3f6dd46/out/grpc_wrap.o" "-c" "grpc_wrap.cc"
    exit code: 0
    AR_x86_64-unknown-linux-gnu = None
    AR_x86_64_unknown_linux_gnu = None
    HOST_AR = None
    AR = None
    running: "ar" "crs" "/home/lxt/Projects/grpc-rs/target/debug/build/grpcio-sys-3e86be41c3f6dd46/out/libgrpc_wrap.a" "/home/lxt/Projects/grpc-rs/target/debug/build/grpcio-sys-3e86be41c3f6dd46/out/grpc_wrap.o"
    exit code: 0
    cargo:rustc-link-lib=static=grpc_wrap
    cargo:rustc-link-search=native=/home/lxt/Projects/grpc-rs/target/debug/build/grpcio-sys-3e86be41c3f6dd46/out
    CXXSTDLIB_x86_64-unknown-linux-gnu = None
    CXXSTDLIB_x86_64_unknown_linux_gnu = None
    HOST_CXXSTDLIB = None
    CXXSTDLIB = None
    cargo:rustc-link-lib=stdc++
    
    --- stderr
    ./grpc/include/grpc/impl/codegen/slice.h:24:10: fatal error: 'stddef.h' file not found
    ./grpc/include/grpc/impl/codegen/slice.h:24:10: fatal error: 'stddef.h' file not found, err: true
    thread 'main' panicked at 'Unable to generate grpc bindings: ()', src/libcore/result.rs:999:5
    

    Method that has been tried

    1. scl enable llvm-toolset-7
    2. yum update cmake
    3. yum update gcc/g++
    4. use a new OS to build in strict accordance with the documentation
    Bug Build 
    opened by hunterlxt 12
  • Make Display output for Error/RpcStatus more human-readable and provide more debugging info for RpcStatus

    Make Display output for Error/RpcStatus more human-readable and provide more debugging info for RpcStatus

    • grpc-sys: provide error string for receive status on client calls
    • call: provide debug error string in RpcStatus
    • error: make Display ouput more human-readable
    • call: make Display of RpcStatusCode more human-readable

    Example of contents of RpcStatus::debug_error_string:

    thread 'test_health_watch_multiple' panicked at 'called `Result::unwrap()` on an `Err` value: RpcFailure(RpcStatus { code: 14-UNAVAILABLE, message: "failed to connect to all addresses", details: [], debug_error_string: "{\"created\":\"@1672417943.726323715\",\"description\":\"Failed to pick subchannel\",\"file\":\"/home/rob/grpc-rs/grpc-sys/grpc/src/core/ext/filters/client_channel/client_channel.cc\",\"file_line\":3217,\"referenced_errors\":[{\"created\":\"@1672417943.726320053\",\"description\":\"failed to connect to all addresses\",\"file\":\"/home/rob/grpc-rs/grpc-sys/grpc/src/core/lib/transport/error_utils.cc\",\"file_line\":165,\"grpc_status\":14}]}" })', health/tests/health_check.rs:137:5
    
    opened by rshearman 0
  • Q: is it possible to use grpc-rs with plain C based Protocol Buffers?

    Q: is it possible to use grpc-rs with plain C based Protocol Buffers?

    Hi,

    Maybe this is a silly question: but is it possible to use grpc-rs with plain C based Protocol Buffers ? e.g.

    https://github.com/nanopb/nanopb (for memory restricted system).

    https://github.com/protobuf-c/protobuf-c

    I think the output of those library are just C's struct, is it possible to use grpc-rs with these struct to achieve network communication?

    Thanks!

    opened by mw66 1
  • System libraries versions (grpc)

    System libraries versions (grpc)

    Is there a way to retrieve the correct (and tested) versions for system libraries such as grpc? Currently, it can be extracted using cargo metadata and sed 's/^.*+//;s/-.*$//', as the grpcio-sys version includes the grpc version. Will this be stable or will the naming convention change?

    opened by gabriel-doriath-dohler 6
  • Unable to build for x86_64-unknown-linux-musl

    Unable to build for x86_64-unknown-linux-musl

    Hi I can't build for x86_64-unknown-linux-musl I get a fatal error: "sys/cdefs.h: No such file or directory compilation terminated."

    This can be a solution? see: https://wiki.musl-libc.org/faq.html#Q:-When-compiling-something-against-musl,-I-get-error-messages-about-%3Ccode%3Esys/cdefs.h%3C/code%3E

    To Reproduce rustup target add x86_64-unknown-linux-musl cargo build --target x86_64-unknown-linux-musl --release

    System information

    • grpcio-sys v0.10.3+1.44.0-patched
    • Docker rust:1.63.0-slim
    • Architecture: x86_64-unknown-linux-musl

    Rust Backtrace

    error: failed to run custom build command for `grpcio-sys v0.10.3+1.44.0-patched`
    
    Caused by:
      process didn't exit successfully: `/opt/agent/workspace/target/release/build/grpcio-sys-ebdd04758f50f234/build-script-build` (exit status: 101)
      --- stdout
      cargo:rerun-if-changed=grpc_wrap.cc
      cargo:rerun-if-changed=grpc
      cargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS
      cargo:rerun-if-env-changed=GRPCIO_SYS_USE_PKG_CONFIG
      cargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS
      cargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS
      cargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS
      cargo:rerun-if-env-changed=CXX
      cargo:rustc-link-search=native=/opt/agent/workspace/target/x86_64-unknown-linux-musl/release/build/libz-sys-067e180c5965d885/out/build
      cargo:rustc-link-search=native=/opt/agent/workspace/target/x86_64-unknown-linux-musl/release/build/libz-sys-067e180c5965d885/out/lib
      CMAKE_TOOLCHAIN_FILE_x86_64-unknown-linux-musl = None
      CMAKE_TOOLCHAIN_FILE_x86_64_unknown_linux_musl = None
      TARGET_CMAKE_TOOLCHAIN_FILE = None
      CMAKE_TOOLCHAIN_FILE = None
      CMAKE_GENERATOR_x86_64-unknown-linux-musl = None
      CMAKE_GENERATOR_x86_64_unknown_linux_musl = None
      TARGET_CMAKE_GENERATOR = None
      CMAKE_GENERATOR = None
      CMAKE_PREFIX_PATH_x86_64-unknown-linux-musl = None
      CMAKE_PREFIX_PATH_x86_64_unknown_linux_musl = None
      TARGET_CMAKE_PREFIX_PATH = None
      CMAKE_PREFIX_PATH = Some("/opt/agent/workspace/target/x86_64-unknown-linux-musl/release/build/libz-sys-067e180c5965d885/out/build")
      CMAKE_x86_64-unknown-linux-musl = None
      CMAKE_x86_64_unknown_linux_musl = None
      TARGET_CMAKE = None
      CMAKE = None
      running: "cmake" "/usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc" "-DCMAKE_CXX_COMPILER=g++" "-DgRPC_INSTALL=false" "-DgRPC_BUILD_CSHARP_EXT=false" "-DgRPC_BUILD_CODEGEN=false" "-DgRPC_BENCHMARK_PROVIDER=none" "-DgRPC_SSL_PROVIDER=package" "-DgRPC_ZLIB_PROVIDER=package" "-DCMAKE_INSTALL_PREFIX=/opt/agent/workspace/target/x86_64-unknown-linux-musl/release/build/grpcio-sys-2dd6fedb6b6a74b5/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/musl-gcc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_ASM_COMPILER=/usr/bin/musl-gcc" "-DCMAKE_BUILD_TYPE=Release"
      -- The C compiler identification is GNU 10.2.1
      -- The CXX compiler identification is GNU 10.2.1
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/musl-gcc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/g++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Looking for pthread.h
      -- Looking for pthread.h - found
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
      -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
      -- Found Threads: TRUE  
      -- Looking for res_servicename in resolv
      -- Looking for res_servicename in resolv - not found
      -- Looking for gethostbyname in nsl
      -- Looking for gethostbyname in nsl - not found
      -- Looking for gethostbyname in socket
      -- Looking for gethostbyname in socket - not found
      -- Looking for socket in socket
      -- Looking for socket in socket - not found
      -- Looking for clock_gettime in rt
      -- Looking for clock_gettime in rt - found
      -- Looking for include file sys/types.h
      -- Looking for include file sys/types.h - found
      -- Looking for include file sys/socket.h
      -- Looking for include file sys/socket.h - found
      -- Looking for include file arpa/inet.h
      -- Looking for include file arpa/inet.h - found
      -- Looking for include file arpa/nameser_compat.h
      -- Looking for include file arpa/nameser_compat.h - found
      -- Looking for include file arpa/nameser.h
      -- Looking for include file arpa/nameser.h - found
      -- Looking for include file assert.h
      -- Looking for include file assert.h - found
      -- Looking for include file errno.h
      -- Looking for include file errno.h - found
      -- Looking for include file fcntl.h
      -- Looking for include file fcntl.h - found
      -- Looking for include file inttypes.h
      -- Looking for include file inttypes.h - found
      -- Looking for include file limits.h
      -- Looking for include file limits.h - found
      -- Looking for include file malloc.h
      -- Looking for include file malloc.h - found
      -- Looking for include file memory.h
      -- Looking for include file memory.h - found
      -- Looking for include file netdb.h
      -- Looking for include file netdb.h - found
      -- Looking for include file netinet/in.h
      -- Looking for include file netinet/in.h - found
      -- Looking for include file netinet/tcp.h
      -- Looking for include file netinet/tcp.h - found
      -- Looking for include file net/if.h
      -- Looking for include file net/if.h - found
      -- Looking for include file signal.h
      -- Looking for include file signal.h - found
      -- Looking for include file socket.h
      -- Looking for include file socket.h - not found
      -- Looking for include file stdbool.h
      -- Looking for include file stdbool.h - found
      -- Looking for include file stdint.h
      -- Looking for include file stdint.h - found
      -- Looking for include file stdlib.h
      -- Looking for include file stdlib.h - found
      -- Looking for include file strings.h
      -- Looking for include file strings.h - found
      -- Looking for include file string.h
      -- Looking for include file string.h - found
      -- Looking for include file stropts.h
      -- Looking for include file stropts.h - found
      -- Looking for include file sys/ioctl.h
      -- Looking for include file sys/ioctl.h - found
      -- Looking for include file sys/param.h
      -- Looking for include file sys/param.h - found
      -- Looking for include file sys/select.h
      -- Looking for include file sys/select.h - found
      -- Looking for include file sys/stat.h
      -- Looking for include file sys/stat.h - found
      -- Looking for include file sys/time.h
      -- Looking for include file sys/time.h - found
      -- Looking for include file sys/uio.h
      -- Looking for include file sys/uio.h - found
      -- Looking for include file time.h
      -- Looking for include file time.h - found
      -- Looking for include file dlfcn.h
      -- Looking for include file dlfcn.h - found
      -- Looking for include file unistd.h
      -- Looking for include file unistd.h - found
      -- Looking for include files winsock2.h, windows.h
      -- Looking for include files winsock2.h, windows.h - not found
      -- Looking for 3 include files winsock2.h, ..., windows.h
      -- Looking for 3 include files winsock2.h, ..., windows.h - not found
      -- Looking for include files winsock.h, windows.h
      -- Looking for include files winsock.h, windows.h - not found
      -- Looking for include file windows.h
      -- Looking for include file windows.h - not found
      -- Performing Test HAVE_SOCKLEN_T
      -- Performing Test HAVE_SOCKLEN_T - Success
      -- Performing Test HAVE_TYPE_SOCKET
      -- Performing Test HAVE_TYPE_SOCKET - Failed
      -- Performing Test HAVE_BOOL_T
      -- Performing Test HAVE_BOOL_T - Success
      -- Performing Test HAVE_SSIZE_T
      -- Performing Test HAVE_SSIZE_T - Success
      -- Performing Test HAVE_LONGLONG
      -- Performing Test HAVE_LONGLONG - Success
      -- Performing Test HAVE_SIG_ATOMIC_T
      -- Performing Test HAVE_SIG_ATOMIC_T - Success
      -- Performing Test HAVE_STRUCT_ADDRINFO
      -- Performing Test HAVE_STRUCT_ADDRINFO - Success
      -- Performing Test HAVE_STRUCT_IN6_ADDR
      -- Performing Test HAVE_STRUCT_IN6_ADDR - Success
      -- Performing Test HAVE_STRUCT_SOCKADDR_IN6
      -- Performing Test HAVE_STRUCT_SOCKADDR_IN6 - Success
      -- Performing Test HAVE_STRUCT_SOCKADDR_STORAGE
      -- Performing Test HAVE_STRUCT_SOCKADDR_STORAGE - Success
      -- Performing Test HAVE_STRUCT_TIMEVAL
      -- Performing Test HAVE_STRUCT_TIMEVAL - Success
      -- Looking for AF_INET6
      -- Looking for AF_INET6 - found
      -- Looking for O_NONBLOCK
      -- Looking for O_NONBLOCK - found
      -- Looking for FIONBIO
      -- Looking for FIONBIO - found
      -- Looking for SIOCGIFADDR
      -- Looking for SIOCGIFADDR - found
      -- Looking for MSG_NOSIGNAL
      -- Looking for MSG_NOSIGNAL - found
      -- Looking for PF_INET6
      -- Looking for PF_INET6 - found
      -- Looking for SO_NONBLOCK
      -- Looking for SO_NONBLOCK - not found
      -- Looking for CLOCK_MONOTONIC
      -- Looking for CLOCK_MONOTONIC - found
      -- Performing Test HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
      -- Performing Test HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID - Success
      -- Performing Test HAVE_LL
      -- Performing Test HAVE_LL - Success
      -- Looking for bitncmp
      -- Looking for bitncmp - not found
      -- Looking for closesocket
      -- Looking for closesocket - not found
      -- Looking for CloseSocket
      -- Looking for CloseSocket - not found
      -- Looking for connect
      -- Looking for connect - found
      -- Looking for fcntl
      -- Looking for fcntl - found
      -- Looking for freeaddrinfo
      -- Looking for freeaddrinfo - found
      -- Looking for getaddrinfo
      -- Looking for getaddrinfo - found
      -- Looking for getenv
      -- Looking for getenv - found
      -- Looking for gethostbyaddr
      -- Looking for gethostbyaddr - found
      -- Looking for gethostbyname
      -- Looking for gethostbyname - found
      -- Looking for gethostname
      -- Looking for gethostname - found
      -- Looking for getnameinfo
      -- Looking for getnameinfo - found
      -- Looking for getservbyport_r
      -- Looking for getservbyport_r - found
      -- Looking for gettimeofday
      -- Looking for gettimeofday - found
      -- Looking for if_indextoname
      -- Looking for if_indextoname - found
      -- Looking for inet_net_pton
      -- Looking for inet_net_pton - not found
      -- Looking for inet_ntop
      -- Looking for inet_ntop - found
      -- Looking for inet_pton
      -- Looking for inet_pton - found
      -- Looking for ioctl
      -- Looking for ioctl - found
      -- Looking for ioctlsocket
      -- Looking for ioctlsocket - not found
      -- Looking for IoctlSocket
      -- Looking for IoctlSocket - not found
      -- Looking for recv
      -- Looking for recv - found
      -- Looking for recvfrom
      -- Looking for recvfrom - found
      -- Looking for send
      -- Looking for send - found
      -- Looking for setsockopt
      -- Looking for setsockopt - found
      -- Looking for socket
      -- Looking for socket - found
      -- Looking for strcasecmp
      -- Looking for strcasecmp - found
      -- Looking for strcmpi
      -- Looking for strcmpi - not found
      -- Looking for strdup
      -- Looking for strdup - found
      -- Looking for stricmp
      -- Looking for stricmp - not found
      -- Looking for strncasecmp
      -- Looking for strncasecmp - found
      -- Looking for strncmpi
      -- Looking for strncmpi - not found
      -- Looking for strnicmp
      -- Looking for strnicmp - not found
      -- Looking for writev
      -- Looking for writev - found
      -- Looking for __system_property_get
      -- Looking for __system_property_get - not found
      -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.1n")  
      -- Found ZLIB: /opt/agent/workspace/target/x86_64-unknown-linux-musl/release/build/libz-sys-067e180c5965d885/out/lib/libz.a (found version "1.2.11") 
      -- Configuring done
      -- Generating done
      -- Build files have been written to: /opt/agent/workspace/target/x86_64-unknown-linux-musl/release/build/grpcio-sys-2dd6fedb6b6a74b5/out/build
      running: "cmake" "--build" "." "--target" "grpc" "--config" "Release" "--parallel" "8"
      Scanning dependencies of target address_sorting
      Scanning dependencies of target re2
      Scanning dependencies of target absl_log_severity
      Scanning dependencies of target absl_spinlock_wait
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/compile.cc.o
      Scanning dependencies of target absl_int128
      Scanning dependencies of target upb
      [  0%] Building C object CMakeFiles/address_sorting.dir/third_party/address_sorting/address_sorting.c.o
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/bitstate.cc.o
      [  0%] Building CXX object third_party/abseil-cpp/absl/numeric/CMakeFiles/absl_int128.dir/int128.cc.o
      [  0%] Building CXX object third_party/abseil-cpp/absl/base/CMakeFiles/absl_log_severity.dir/log_severity.cc.o
      [  0%] Building C object CMakeFiles/address_sorting.dir/third_party/address_sorting/address_sorting_posix.c.o
      [  0%] Building CXX object third_party/abseil-cpp/absl/base/CMakeFiles/absl_spinlock_wait.dir/internal/spinlock_wait.cc.o
      [  0%] Building C object CMakeFiles/upb.dir/third_party/upb/upb/decode_fast.c.o
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/dfa.cc.o
      [  0%] Building C object CMakeFiles/upb.dir/third_party/upb/upb/decode.c.o
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/filtered_re2.cc.o
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/mimics_pcre.cc.o
      [  0%] Linking CXX static library libabsl_spinlock_wait.a
      [  0%] Built target absl_spinlock_wait
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/nfa.cc.o
      [  0%] Linking CXX static library libabsl_log_severity.a
      [  0%] Built target absl_log_severity
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/onepass.cc.o
      [  0%] Linking CXX static library libabsl_int128.a
      [  0%] Built target absl_int128
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/parse.cc.o
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/perl_groups.cc.o
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/prefilter.cc.o
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/prefilter_tree.cc.o
      [  0%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/prog.cc.o
      [  1%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/re2.cc.o
      [  1%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/regexp.cc.o
      [  1%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/set.cc.o
      [  1%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/simplify.cc.o
      [  1%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/stringpiece.cc.o
      [  1%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/tostring.cc.o
      [  1%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/unicode_casefold.cc.o
      [  1%] Building CXX object third_party/re2/CMakeFiles/re2.dir/re2/unicode_groups.cc.o
      [  1%] Building CXX object third_party/re2/CMakeFiles/re2.dir/util/rune.cc.o
      [  1%] Building CXX object third_party/re2/CMakeFiles/re2.dir/util/strutil.cc.o
      [  1%] Linking CXX static library libre2.a
      [  1%] Built target re2
    
      --- stderr
      CMake Warning at third_party/abseil-cpp/CMakeLists.txt:74 (message):
        A future Abseil release will default ABSL_PROPAGATE_CXX_STD to ON for CMake
        3.8 and up.  We recommend enabling this option to ensure your project still
        builds correctly.
    
    
      CMake Warning at cmake/protobuf.cmake:51 (message):
        gRPC_PROTOBUF_PROVIDER is "module" but PROTOBUF_ROOT_DIR is wrong
      Call Stack (most recent call first):
        CMakeLists.txt:312 (include)
    
    
      CMake Warning:
        Manually-specified variables were not used by the project:
    
          CMAKE_ASM_COMPILER
          CMAKE_ASM_FLAGS
    
    
      gmake: warning: -j8 forced in submake: resetting jobserver mode.
      In file included from /usr/include/arpa/inet.h:21,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/address_sorting/address_sorting_internal.h:57,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/address_sorting/address_sorting.c:41:
      /usr/include/features.h:461:12: fatal error: sys/cdefs.h: No such file or directory
        461 | #  include <sys/cdefs.h>
            |            ^~~~~~~~~~~~~
      compilation terminated.
      gmake[3]: *** [CMakeFiles/address_sorting.dir/build.make:82: CMakeFiles/address_sorting.dir/third_party/address_sorting/address_sorting.c.o] Error 1
      gmake[3]: *** Waiting for unfinished jobs....
      In file included from /usr/include/arpa/inet.h:21,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/address_sorting/address_sorting_internal.h:57,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/address_sorting/address_sorting_posix.c:41:
      /usr/include/features.h:461:12: fatal error: sys/cdefs.h: No such file or directory
        461 | #  include <sys/cdefs.h>
            |            ^~~~~~~~~~~~~
      compilation terminated.
      gmake[3]: *** [CMakeFiles/address_sorting.dir/build.make:95: CMakeFiles/address_sorting.dir/third_party/address_sorting/address_sorting_posix.c.o] Error 1
      gmake[2]: *** [CMakeFiles/Makefile2:1138: CMakeFiles/address_sorting.dir/all] Error 2
      gmake[2]: *** Waiting for unfinished jobs....
      In file included from /usr/include/assert.h:35,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/upb/upb/upb.h:35,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/upb/upb/msg.h:41,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/upb/upb/decode_fast.h:65,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/upb/upb/decode_fast.c:38:
      /usr/include/features.h:461:12: fatal error: sys/cdefs.h: No such file or directory
        461 | #  include <sys/cdefs.h>
            |            ^~~~~~~~~~~~~
      compilation terminated.
      gmake[3]: *** [CMakeFiles/upb.dir/build.make:82: CMakeFiles/upb.dir/third_party/upb/upb/decode_fast.c.o] Error 1
      gmake[3]: *** Waiting for unfinished jobs....
      In file included from /usr/include/assert.h:35,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/upb/upb/upb.h:35,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/upb/upb/msg.h:41,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/upb/upb/decode.h:35,
                       from /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/grpc/third_party/upb/upb/decode.c:28:
      /usr/include/features.h:461:12: fatal error: sys/cdefs.h: No such file or directory
        461 | #  include <sys/cdefs.h>
            |            ^~~~~~~~~~~~~
      compilation terminated.
      gmake[3]: *** [CMakeFiles/upb.dir/build.make:95: CMakeFiles/upb.dir/third_party/upb/upb/decode.c.o] Error 1
      gmake[2]: *** [CMakeFiles/Makefile2:905: CMakeFiles/upb.dir/all] Error 2
      gmake[1]: *** [CMakeFiles/Makefile2:1090: CMakeFiles/grpc.dir/rule] Error 2
      gmake: *** [Makefile:248: grpc] Error 2
      thread 'main' panicked at '
      command did not execute successfully, got: exit status: 2
    
      build script failed, must exit now', /usr/local/cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.48/src/lib.rs:975:5
      stack backtrace:
         0:     0x55ca3ed8ad9d - std::backtrace_rs::backtrace::libunwind::trace::h8217d0a8f3fd2f41
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
         1:     0x55ca3ed8ad9d - std::backtrace_rs::backtrace::trace_unsynchronized::h308103876b3af410
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
         2:     0x55ca3ed8ad9d - std::sys_common::backtrace::_print_fmt::hc208018c6153605e
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:66:5
         3:     0x55ca3ed8ad9d - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf89a7ed694dfb585
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:45:22
         4:     0x55ca3edabd7c - core::fmt::write::h21038c1382fe4264
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/fmt/mod.rs:1197:17
         5:     0x55ca3ed870a1 - std::io::Write::write_fmt::h7dbb1c9a3c254aef
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/io/mod.rs:1672:15
         6:     0x55ca3ed8c675 - std::sys_common::backtrace::_print::h4e8889719c9ddeb8
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:48:5
         7:     0x55ca3ed8c675 - std::sys_common::backtrace::print::h1506fe2cb3022667
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:35:9
         8:     0x55ca3ed8c675 - std::panicking::default_hook::{{closure}}::hd9d7ce2a8a782440
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:295:22
         9:     0x55ca3ed8c396 - std::panicking::default_hook::h5b16ec25444b1b5d
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:314:9
        10:     0x55ca3ed8cc06 - std::panicking::rust_panic_with_hook::hb0138cb6e6fea3e4
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:698:17
        11:     0x55ca3ed8caf7 - std::panicking::begin_panic_handler::{{closure}}::h4cb67095557cd1aa
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:588:13
        12:     0x55ca3ed8b254 - std::sys_common::backtrace::__rust_end_short_backtrace::h2bfcac279dcdc911
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/sys_common/backtrace.rs:138:18
        13:     0x55ca3ed8c829 - rust_begin_unwind
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:584:5
        14:     0x55ca3ecad973 - core::panicking::panic_fmt::h1de71520faaa17d3
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/panicking.rs:142:14
        15:     0x55ca3ed008fd - cmake::fail::hbbe72f407ac11ce7
        16:     0x55ca3ed00345 - cmake::run::hf33a6a7968ce97b7
        17:     0x55ca3ecfd6d5 - cmake::Config::build::h981620b5476cfa79
        18:     0x55ca3ecaf6e4 - build_script_build::build_grpc::h5034b3588fbda1a5
        19:     0x55ca3ecb1668 - build_script_build::main::he257a8c6144d089b
        20:     0x55ca3ecb3a33 - core::ops::function::FnOnce::call_once::h8981fccfc2b0da43
        21:     0x55ca3ecb6859 - std::sys_common::backtrace::__rust_begin_short_backtrace::hfe53cc5a9d07e40a
        22:     0x55ca3ecb5599 - std::rt::lang_start::{{closure}}::he6c0b755eb49c682
        23:     0x55ca3ed826de - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h4937aaa125c8d4b2
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/core/src/ops/function.rs:280:13
        24:     0x55ca3ed826de - std::panicking::try::do_call::h6f5c70e8b0a34f92
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:492:40
        25:     0x55ca3ed826de - std::panicking::try::h68766ba264ecf2e2
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:456:19
        26:     0x55ca3ed826de - std::panic::catch_unwind::hc36033d2f9cc04af
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panic.rs:137:14
        27:     0x55ca3ed826de - std::rt::lang_start_internal::{{closure}}::h78c037f4a1a28ded
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/rt.rs:128:48
        28:     0x55ca3ed826de - std::panicking::try::do_call::he6e1fffda4c750ee
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:492:40
        29:     0x55ca3ed826de - std::panicking::try::h48a77ddbb2f4c87a
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panicking.rs:456:19
        30:     0x55ca3ed826de - std::panic::catch_unwind::hfa809b06a550a9e7
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/panic.rs:137:14
        31:     0x55ca3ed826de - std::rt::lang_start_internal::h4db69ed48eaca005
                                     at /rustc/4b91a6ea7258a947e59c6522cd5898e7c0a6a88f/library/std/src/rt.rs:128:20
        32:     0x55ca3ecb5581 - std::rt::lang_start::h78d8e174c82b3877
        33:     0x55ca3ecb1bc3 - main
        34:     0x7f6b9113cd0a - __libc_start_main
        35:     0x55ca3ecadbba - _start
        36:                0x0 - <unknown>
    warning: build failed, waiting for other jobs to finish...
    
    opened by dertin 2
  • Unable to build for x86_64-pc-windows-msvc or x86_64-pc-windows-gnu

    Unable to build for x86_64-pc-windows-msvc or x86_64-pc-windows-gnu

    Describe the bug Hi, I'm trying to build a library which uses tikv/client-rust (which uses grpcio). I am using the master version of tikv-client which uses grpcio-sys 0.10.3+1.44.0-patched. I have attempted to build the library in a number of different ways:

    1. Build on macOS with x86_64-pc-windows-gnu as the target.
    2. Build on Github Actions (windows-latest) with the target x86_64-pc-windows-gnu.
    3. Build on Github Actions (windows-latest) with the target x86_64-pc-windows-msvc.

    The tooling versions on macOS are:

    brew install cmake mingw-w64
    go version go1.19 darwin/arm64
    cargo 1.62.1 (a748cf5a3 2022-06-08)
    rustc 1.62.1 (e092d0b6b 2022-07-16)
    cmake version 3.24.0
    Apple clang version 13.1.6 (clang-1316.0.21.2.5)
    perl v5.30.3 built for darwin-thread-multi-2level
    

    The tooling versions on Windows Github Actions are

    go version go1.17.13 windows/amd64
    cargo 1.62.1 (a748cf5a3 2022-06-08)
    rustc 1.62.1 (e092d0b6b 2022-07-16)
    cmake version 3.24.0
    gcc.exe (MinGW-W64 x86_64-posix-seh, built by Brecht Sanders) 11.2.0
    g++.exe (MinGW-W64 x86_64-posix-seh, built by Brecht Sanders) 11.2.0
    perl v5.32.1 built for x86_64-msys-thread-multi
    

    To Reproduce


    When running the build on macOS I receive the following error:

    error: couldn't read /Users/tobie/Repositories/surrealdb/target/x86_64-pc-windows-gnu/release/build/grpcio-sys-89eb569412f5ce5d/out/grpc-bindings.rs: No such file or directory (os error 2)
     --> /Users/tobie/.cargo/registry/src/github.com-1ecc6299db9ec823/grpcio-sys-0.10.3+1.44.0-patched/src/lib.rs:8:5
      |
    8 |     include!(env!("BINDING_PATH"));
      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      |
      = note: this error originates in the macro `include` (in Nightly builds, run with -Z macro-backtrace for more info)
    
    error: could not compile `grpcio-sys` due to previous error
    

    When running the build on Windows (for target x86_64-pc-windows-gnu) it errors with:

    ././grpc/include\grpc\impl\codegen\port_platform.h:68:10: fatal error: 'windows.h' file not found
    ././grpc/include\grpc\impl\codegen\port_platform.h:68:10: fatal error: 'windows.h' file not found, err: true
    thread 'bindgen_grpc' panicked at 'Unable to generate grpc bindings: ()', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\grpcio-sys-0.10.3+1.44.0-patched\build.rs:440:10
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Any { .. }', C:\Users\runneradmin\.cargo\registry\src\github.com-1ecc6299db9ec823\grpcio-sys-0.10.3+1.44.0-patched\build.rs:484:14
    

    The full build can be seen here: https://github.com/surrealdb/build/runs/7785309154


    When running the build on Windows (for target x86_64-pc-windows-msvc) it errors with:

    Error: could not find native static library `ssl`, perhaps an -L flag is missing?
    error: could not compile `grpcio-sys` due to previous error
    

    I have also attempted to install openssl headers with:

    vcpkg integrate install
    vcpkg install openssl:x64-windows-static
    VCPKGRS_DYNAMIC: 1
    LIBCLANG_PATH: 'C:\Program Files\LLVM\bin'
    OPENSSL_DIR: C:\vcpkg\installed\x64-windows-static
    OPENSSL_LIB_DIR: C:\vcpkg\installed\x64-windows-static\lib
    OPENSSL_INCLUDE_DIR: C:\vcpkg\installed\x64-windows-static\include
    

    The full build can be seen here: https://github.com/surrealdb/build/runs/7785309293


    Expected behavior Expected the package grpcio-sys to build successfully.

    Are there any instructions or guides to getting grpcio and grpcio-sys to build for the Windows target?

    Thanks!

    opened by tobiemh 0
  • Upgrade protobuf 3

    Upgrade protobuf 3

    Protobuf 3 is current stable version. Compared to version 2 it implements:

    • runtime reflection
    • JSON and text format parsing and printing
    • dynamic messages (messages which can be created from .proto file on the fly without code generation)

    https://github.com/stepancheg/rust-protobuf/#versions-and-branches

    Is this update on the roadmap?

    opened by dertin 1
Releases(v0.12.0)
  • v0.12.0(Nov 7, 2022)

    • Update prost to 0.11 (#595)
    • Update grpc to 1.36.5 (#593)
    • Update the security API of channel to match the C++ version (#593)

    Note, 1.36.5 removes the support of epollex engine (which is the default engine before), and enables transparent retry by default. So you may experience potential performance regression. And 1.36.5 is also the last version that supports C++11. Next version will requires C++14.

    Source code(tar.gz)
    Source code(zip)
  • v0.11.0(Sep 14, 2022)

  • v0.10.3(Jun 28, 2022)

  • v0.10.2(Apr 15, 2022)

  • v0.10.1(Mar 28, 2022)

  • v0.10.0(Mar 2, 2022)

    This release update grpc c core to 1.44.0 and headers are support on both server side and client side.

    From this release, "secure" feature is renamed to "boringssl" to better explain what library is used under the hook. And different from the past, if "openssl" is enabled and "boringssl" is disable, boringssl-src-rs will not be downloaded anymore, it should help the case where network condition is poor.

    Also "use-bindgen" features is removed, now cargo should be able to enable bindgen automatically according to your target platforms.

    Following is the changes details:

    • Update prost to 0.9.0 (#544) (#559)
    • Make CallOption sync (#551)
    • Update grpc c core to 1.44.0 (#549) (#558)
    • Support querying channelz by API (#550)
    • Reduce dependency on future crate (#554)
    • Support headers on all call types (#555)
    • Rename features "secure" to "boringssl" (#558)
    • Drop dependency on bindgen for both MacOS and x86_64/aarch64 Linux (#558)
    • Make health crate not depend on secure feature (#558)
    Source code(tar.gz)
    Source code(zip)
  • v0.9.1(Sep 22, 2021)

  • v0.9.0(May 25, 2021)

    • Support rich error (#514)
    • Provide default service implementations (#521)
    • Support abstract UDS (#523)
    • Use default-features=false on libz-sys to allow for zlib-ng (#525)
    • Update grpc to 1.38.0 (#526)
    Source code(tar.gz)
    Source code(zip)
  • v0.8.2(May 25, 2021)

  • grpcio-sys-v0.8.1(Mar 2, 2021)

  • v0.8.0(Feb 25, 2021)

  • v0.7.1(Dec 18, 2020)

  • v0.7.0(Nov 3, 2020)

    • Add blocking callback to EnvBuilder (#474)
    • Enhance sinks to make them batchable (#469)
    • Remove rustfmt_skip attribute since it is unstable (#479)
    • Use grpc_slice to reduce memory copy (#481)
    • Fix the bug that server cannot shutdown itself when drop (#484)
    • Add methods for channels from file descriptors (#488)
    • Update gRPC C core to 1.33.1 (#492)
    Source code(tar.gz)
    Source code(zip)
  • v0.5.4(Jul 27, 2020)

  • v0.6.0(Jun 12, 2020)

Owner
TiKV Project
TiKV Project
Futures-based QUIC implementation in Rust

Pure-rust QUIC protocol implementation Quinn is a pure-rust, future-based implementation of the QUIC transport protocol undergoing standardization by

null 2.6k Jan 8, 2023
Futures implementation for JSON-RPC

futures-jsonrpc Futures + JSON-RPC A lightweight remote procedure call protocol. It is designed to be simple! And, with futures, even more flexible! T

Victor Lopes 12 May 19, 2022
Crate extending futures stream combinators, that is adding precise rate limiter

stream-rate-limiter Stream combinator .rate_limiter(opt: RateLimitOptions) Provides way to limit stream element rate with constant intervals. It adds

null 3 Jul 23, 2023
A generic Rust based Bigtable connection library implemented using gRPC

A generic Rust based Bigtable connection library refactored out the solana mono-repo so that can be shared for different applications.

Lijun Wang 3 Sep 25, 2022
Simple project to test grpc between ruby (client) and rust (server)

grpc-example Simple project to test grpc between ruby (client) and rust (server). Usage To simplify a lot this project uses docker and docker compose

Bruno Arueira 2 Oct 14, 2021
An implementation of the ZITADEL gRPC API in Rust.

An implementation of the ZITADEL gRPC API in Rust. Complemented with other useful elements such as ServiceAccount auth.

Christoph Bühler 10 Dec 15, 2022
CatBoost server in Rust + gRPC

catboost-server CatBoost server in Rust + gRPC Model Simple CatBoost model 2 numeric (float) features 3 categorical features Run gRPC Server $ cargo r

Hyeongchan Kim 2 Sep 9, 2022
Core library for Lightning Network peer-to-peer nostr platform

Mostro server This document explains how Mostro works. Overview Due to the growing need to be able to operate with Bitcoin without giving up personal

Mostro 16 Jan 4, 2023
An end-to-end encrypted, anonymous IP-hiding, decentralized, audio/video/file sharing/offline messaging multi-device platform built for both communications and application security and performance.

An end-to-end encrypted, anonymous IP-hiding, decentralized, audio/video/file sharing/offline messaging multi-device platform built for both communications and application security and performance.

null 2 Apr 27, 2022
A multiplayer web based roguelike built on Rust and WebRTC

Gorgon A multiplayer web-based roguelike build on Rust and WebRTC. License This project is licensed under either of Apache License, Version 2.0, (LICE

RICHΛRD ΛNΛYΛ 2 Sep 19, 2022
An easy-to-use tunnel to localhost built in Rust. An alternative to ngrok and frp.

rslocal English | 中文 What is rslocal? Rslocal is like ngrok built in Rust, it builds a tunnel to localhost. Project status support http support tcp su

saltbo 220 Jan 7, 2023
The true next-gen L7 minecraft proxy and load balancer. Built in Rust.

Lure The true next-gen L7 minecraft proxy and load balancer. Built in Rust, Tokio and Valence. Why? Rust is a powerful programming language and a grea

Sammwy 67 Apr 16, 2023
Self-hosted, fast, and efficient replacement for ngrok, built with Rust

reverse-proxy reverse-proxy is a self-hosted, fast, and efficient replacement for ngrok, built with Rust. The project leverages the power of Tokio and

null 4 May 22, 2023
Minimal DNS server built in Rust with rule system and logging.

MinDNS MinDNS is a minimal DNS server written in Rust. It is intended to be used as a firewall, black-hole or proxy DNS server. ⚡ Features Fully async

Sammwy 142 Oct 23, 2023
Revolt backend API server, built with Rust.

Delta Description Delta is a blazing fast API server built with Rust for Revolt. Features: Robust and efficient API routes for running a chat platform

Revolt 741 Dec 26, 2022
A CLI test program for HNU Cloud Computing Lab 2, built with Rust.

HTTP Server Tester This is a CLI test program for HNU Cloud Computing Lab 2. Install For most student, you don't neet to rebuild this project. We prov

null 5 Apr 21, 2022
STAC server, built in Rust, backed by pgstac

stac-server-rs A simple STAC server written in Rust. To run an example server: stac-server 0.0.0.0:3000 example-config.toml --href data/joplin/collect

Pete Gadomski 5 Dec 4, 2022
A sample API Gateway built in Rust (work in progress) for learning purposes

rust-api-gateway A sample API Gateway built in Rust (work in progress) for learning purposes. You can follow along by reading the tutorial articles: P

Luis Soares 4 Oct 29, 2023
Easy per application transparent proxy built on cgroup.

cproxy can redirect TCP and UDP traffic made by a program to a proxy, without requiring the program supporting a proxy. Compared to many existi

Xiangru Lian 263 Dec 20, 2022