Sentinel: The Sentinel of Your Microservices

Overview

Sentinel Logo

Sentinel: The Sentinel of Your Microservices (WIP)

Crates.io Sentinel CI Codecov Apache licensed Gitter chat

Introduction

As distributed systems become increasingly popular, the reliability between services is becoming more important than ever before. Sentinel takes "flow" as breakthrough point, and works on multiple fields including flow control, traffic shaping, circuit breaking and system adaptive protection, to guarantee reliability and resilience for microservices.

Sentinel has the following features:

  • Rich applicable scenarios: Sentinel has been wildly used in Alibaba, and has covered almost all the core-scenarios in Double-11 (11.11) Shopping Festivals in the past 10 years, such as “Second Kill” which needs to limit burst flow traffic to meet the system capacity, message peak clipping and valley fills, circuit breaking for unreliable downstream services, cluster flow control, etc.
  • Real-time monitoring: Sentinel also provides real-time monitoring ability. You can see the runtime information of a single machine in real-time, and pump the metrics to outside metric components like Prometheus.
  • Polyglot support: Sentinel has provided native support for Rust, Java, Go and C++.

Documentation

See the Wiki for Rust version full documentation, examples, blog posts, operational details and other information.

See the Sentinel for the document website.

See the 中文文档 for document in Chinese.

The Rust API documentation is working in progress.

Example

Add the dependency in Cargo.toml:

[dependencies]
sentinel-rs = { version = "0.1.0", features = ["full"] }

Contributing

Contributions are always welcomed! Please refer to CONTRIBUTING for detailed guidelines.

Comments
  • psutil host level is not supported macos

    psutil host level is not supported macos

    at the begining, i want to run cargo test on macos. unfortunately i saw the error about psutil. so i looked through the documentation and found that it was not supported.

    kind/enhancement 
    opened by eliasyaoyc 6
  • RUSTSEC-2020-0071: Potential segfault in the time crate

    RUSTSEC-2020-0071: Potential segfault in the time crate

    Potential segfault in the time crate

    | Details | | | ------------------- | ---------------------------------------------- | | Package | time | | Version | 0.1.44 | | URL | https://github.com/time-rs/time/issues/293 | | Date | 2020-11-18 | | Patched versions | >=0.2.23 | | Unaffected versions | =0.2.0,=0.2.1,=0.2.2,=0.2.3,=0.2.4,=0.2.5,=0.2.6 |

    Impact

    Unix-like operating systems may segfault due to dereferencing a dangling pointer in specific circumstances. This requires an environment variable to be set in a different thread than the affected functions. This may occur without the user's knowledge, notably in a third-party library.

    The affected functions from time 0.2.7 through 0.2.22 are:

    • time::UtcOffset::local_offset_at
    • time::UtcOffset::try_local_offset_at
    • time::UtcOffset::current_local_offset
    • time::UtcOffset::try_current_local_offset
    • time::OffsetDateTime::now_local
    • time::OffsetDateTime::try_now_local

    The affected functions in time 0.1 (all versions) are:

    • at
    • at_utc
    • now

    Non-Unix targets (including Windows and wasm) are unaffected.

    Patches

    Pending a proper fix, the internal method that determines the local offset has been modified to always return None on the affected operating systems. This has the effect of returning an Err on the try_* methods and UTC on the non-try_* methods.

    Users and library authors with time in their dependency tree should perform cargo update, which will pull in the updated, unaffected code.

    Users of time 0.1 do not have a patch and should upgrade to an unaffected version: time 0.2.23 or greater or the 0.3 series.

    Workarounds

    No workarounds are known.

    References

    time-rs/time#293

    See advisory page for additional details.

    opened by github-actions[bot] 4
  • Unexpected failures on Windows and MacOS

    Unexpected failures on Windows and MacOS

    See failures on Windows and MacOS.

    In short, core::system_metric::test::process_cpu_stat fails randomly both on windows-lastest and macos-latest. core::stat::base::leap_array::test::valid_headt fails randomly on macos-latest. (This failure is more severe).

    Local tests on Windows10 and Windows11 never fail. Docker Image sickcodes/Docker-OSX is hard to deploy on WSL, so I didn't test MacOS locally.

    kind/bug 
    opened by Forsworns 3
  • Add CI on Wasm platform

    Add CI on Wasm platform

    Now Sentinel cannot build on Wasm due to sysinfo, but it is not so urgent since the Envoy Wasm proxy support is in experimental stages...

    Wait for upstream updates from sysinfo, see GuillaumeGomez/sysinfo#665

    opened by Forsworns 3
  • tokio的例子跑不起来,异步使用报错

    tokio的例子跑不起来,异步使用报错

    有以下几个问题: 1、taokio的例子在运行时会报错,错误内容:

    error: future cannot be sent between threads safely
       --> src/main.rs:13:23
        |
    13  |         handlers.push(tokio::spawn(async move {
        |                       ^^^^^^^^^^^^ future created by async block is not `Send`
        |
        = help: within `impl Future<Output = [async output]>`, the trait `Send` is not implemented for `Rc<RefCell<SentinelEntry>>`
    

    2、使用异步的时候,会报错,主要代码如下:

    pub async fn sentinel_limiting(
        req: Request<Body>,
        next: Next<Body>,) -> Result<impl IntoResponse, (StatusCode, String)> {
        
        let entry_builder = EntryBuilder::new(String::from(RESOURCE_NAME))
            .with_traffic_type(base::TrafficType::Inbound);
    
        match entry_builder.build() {
            Ok(entry) => {
                let res = {next.run(req).await};
                entry.exit();
                Ok(res)
            },
            Err(_) => {
                log::info!("被限流了"); 
                Err((StatusCode::PAYLOAD_TOO_LARGE, String::from("")))},
            }
        }
    

    主要报错如下:

    error: future cannot be sent between threads safely
       --> src/main.rs:48:10
        |
    48  |         .layer(middleware::from_fn(sentinel_limiting))
        |          ^^^^^ future returned by `sentinel_limiting` is not `Send`
        |
        = help: within `FromFnResponseFuture<impl Future<Output = std::result::Result<Opaque(DefId(0:548 ~ rs_logonline[3f0a]::middlewares::limiting::sentinel_limiting::{opaque#0}::{opaque#0}), []), (StatusCode, std::string::String)>>>`, the trait `Send` is not implemented for `Rc<RefCell<SentinelEntry>>`
    note: future is not `Send` as this value is used across an await
       --> src/middlewares/limiting.rs:41:37
        |
    40  |         Ok(entry) => {
        |            ----- has type `EntryStrongPtr` which is not `Send`
    41  |             let res = {next.run(req).await};
        |                                     ^^^^^^ await occurs here, with `entry` maybe used later
    ...
    44  |         },
        |         - `entry` is later dropped here
    note: required by a bound in `Router::<B>::layer`
       --> /Users/weicheng/.cargo/registry/src/github.com-1ecc6299db9ec823/axum-0.5.1/src/routing/mod.rs:298:63
        |
    298 |         <L::Service as Service<Request<NewReqBody>>>::Future: Send + 'static,
        |                                                               ^^^^ required by this bound in `Router::<B>::layer`
    
    
    
    opened by FourSpaces 2
  • chore(deps): update proxy-wasm requirement from 0.1.4 to 0.2.0

    chore(deps): update proxy-wasm requirement from 0.1.4 to 0.2.0

    Updates the requirements on proxy-wasm to permit the latest version.

    Release notes

    Sourced from proxy-wasm's releases.

    v0.2.0

    Fixed

    • Fixed performance degradation with wasm32-wasi target in Rust v1.56.0 or newer by adding proxy_wasm::main macro that should be used instead of custom _start, _initialize and/or main exports.

    Changed

    • Updated ABI to Proxy-Wasm ABI v0.2.1.

    Added

    Changelog

    Sourced from proxy-wasm's changelog.

    [0.2.0] - 2022-04-08

    Fixed

    • Fixed performance degradation with wasm32-wasi target in Rust v1.56.0 or newer by adding proxy_wasm::main macro that should be used instead of custom _start, _initialize and/or main exports.

    Changed

    • Updated ABI to Proxy-Wasm ABI v0.2.1.

    Added

    [0.1.4] - 2021-07-01

    Added

    [0.1.3] - 2020-12-04

    Fixed

    Changed

    • Changed wee-alloc to an optional feature. Thanks @​yuval-k!

    Added

    • Added support for building for wasm32-wasi target.
    • Added support for metrics.
    • Added support for RootContext to create child contexts for streams. Thanks @​dgn!
    • Added support for setting network buffers.

    [0.1.2] - 2020-08-05

    Changed

    • Updated MapType values to match updated Proxy-Wasm ABI v0.1.0. Thanks @​yskopets!

    ... (truncated)

    Commits

    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)
    dependencies 
    opened by dependabot[bot] 2
  • chore(deps): update sysinfo requirement from 0.26.8 to 0.27.0

    chore(deps): update sysinfo requirement from 0.26.8 to 0.27.0

    Updates the requirements on sysinfo to permit the latest version.

    Changelog

    Sourced from sysinfo's changelog.

    0.27.0

    • Add NetworkExt::mac_address method and MacAddr type.
    • Linux: Fix truncated environment retrieval.
    • Implement TryFrom<usize> and FromStr for Gid and Uid.
    • Implement TryFrom<usize> for Pid.
    • Fix documentation of System::new about CPU list not loaded by default.

    0.26.8

    • Add ProcessExt::session_id method.
    • Linux: Ignore NFS disks.

    0.26.7

    • Apple: Greatly improve disk retrieval (I recommend reading the pull request first comment for more information here: GuillaumeGomez/sysinfo#855).
    • Remove build script.

    0.26.6

    • Add Process::wait.
    • Add "Good pratice" entry into the crate level documentation and in the README.
    • Linux: More precise used memory computation.

    0.26.5

    • Windows: Fix disk information retrieval.
    • Linux: Improve Process document.
    • Linux: Fix a compilation error if the apple-sandbox feature is enabled.
    • Internal code improvements.

    0.26.4

    • Add SystemExt::distribution_id method.
    • Update ntapi version to 0.4.
    • Update minimum supported Rust version (MSRV) to 1.59 for ntapi 0.4.

    0.26.3

    • Update minimum supported Rust version (MSRV) to 1.56 to follow once_cell minor update.

    0.26.2

    • Linux: Fix process information retrieval.
    • Linux: Get more components temperature.
    • Linux: Fix disk name retrieval (which in turn fixed disk type retrieval).

    0.26.1

    • macOS M1: Fix segmentation fault crash.

    ... (truncated)

    Commits

    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)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): update serde_yaml requirement from 0.8.23 to 0.9.14

    chore(deps): update serde_yaml requirement from 0.8.23 to 0.9.14

    Updates the requirements on serde_yaml to permit the latest version.

    Release notes

    Sourced from serde_yaml's releases.

    0.9.14

    • Implement Deserializer for TaggedValue and &TaggedValue (#339)
    Commits
    • 8948d36 Release 0.9.14
    • 8d95125 Merge pull request #339 from dtolnay/deserializertaggedvalue
    • 371f764 Implement Deserializer for TaggedValue and &TaggedValue
    • c5523fe Replace nonstandard SError name used only in Value Deserialize
    • 516fdff Ignore uninlined_format_args pedantic clippy lint
    • 31fa98e Pull in unsafe-libyaml 0.2.4
    • 186cc67 Release 0.9.13
    • 43615b1 Merge pull request #330 from dtolnay/tagresolution
    • 35037c5 Add some null and boolean representations
    • a7b9862 Add a core schema tag resolution test
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): update sysinfo requirement from 0.23.0 to 0.26.7

    chore(deps): update sysinfo requirement from 0.23.0 to 0.26.7

    Updates the requirements on sysinfo to permit the latest version.

    Changelog

    Sourced from sysinfo's changelog.

    0.26.7

    • Apple: Greatly improve disk retrieval (I recommend reading the pull request first comment for more information here: GuillaumeGomez/sysinfo#855).
    • Remove build script.

    0.26.6

    • Add Process::wait.
    • Add "Good pratice" entry into the crate level documentation and in the README.
    • Linux: More precise used memory computation.

    0.26.5

    • Windows: Fix disk information retrieval.
    • Linux: Improve Process document.
    • Linux: Fix a compilation error if the apple-sandbox feature is enabled.
    • Internal code improvements.

    0.26.4

    • Add SystemExt::distribution_id method.
    • Update ntapi version to 0.4.
    • Update minimum supported Rust version (MSRV) to 1.59 for ntapi 0.4.

    0.26.3

    • Update minimum supported Rust version (MSRV) to 1.56 to follow once_cell minor update.

    0.26.2

    • Linux: Fix process information retrieval.
    • Linux: Get more components temperature.
    • Linux: Fix disk name retrieval (which in turn fixed disk type retrieval).

    0.26.1

    • macOS M1: Fix segmentation fault crash.

    0.26.0

    • Switch memory unit from kilobytes to bytes.
    • Windows: Fix Windows version display on Windows 11.

    0.25.3

    • Add macOS M1 CI checks.
    • macOS M1: Add temperature support.
    • macOS: Fix leak in disk retrieval.

    0.25.2

    ... (truncated)

    Commits

    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)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): update kube requirement from 0.65 to 0.76

    chore(deps): update kube requirement from 0.65 to 0.76

    Updates the requirements on kube to permit the latest version.

    Release notes

    Sourced from kube's releases.

    0.76.0

    Highlights

    #[derive(CustomResource)] now supports schemas with untagged enums

    Expanding on our existing support for storing Rust's struct enums in CRDs, Kube will now try to convert #[serde(untagged)] enums as well. Note that if the same field is present in multiple untagged variants then they must all have the same shape.

    Removed deprecated try_flatten_* functions

    These have been deprecated since 0.72, and are replaced by the equivalent WatchStreamExt methods.

    What's Changed

    Added

    Removed

    Fixed

    New Contributors

    Full Changelog: https://github.com/kube-rs/kube/compare/0.75.0...0.76.0

    Changelog

    Sourced from kube's changelog.

    0.76.0 / 2022-10-28

    Highlights

    #[derive(CustomResource)] now supports schemas with untagged enums

    Expanding on our existing support for storing Rust's struct enums in CRDs, Kube will now try to convert #[serde(untagged)] enums as well. Note that if the same field is present in multiple untagged variants then they must all have the same shape.

    Removed deprecated try_flatten_* functions

    These have been deprecated since 0.72, and are replaced by the equivalent WatchStreamExt methods.

    What's Changed

    Added

    Removed

    Fixed

    0.75.0 / 2022-09-21

    Highlights

    Upgrade k8s-openapi to 0.16 for Kubernetes 1.25

    The update to [email protected] makes this the first release with tentative Kubernetes 1.25 support. While the new structs and apis now exist, we recommend holding off on using 1.25 until a deserialization bug in the apiserver is resolved upstream. See #997 / #1008 for details.

    To upgrade, ensure you bump both kube and k8s-openapi:

    cargo upgrade kube k8s-openapi
    

    New/Old Config::incluster default to connect in cluster

    Our previous default of connecting to the Kubernetes apiserver via kubernetes.default.svc has been reverted back to use the old environment variables after Kubernetes updated their position that the environment variables are not legacy. This does unfortunately regress on rustls support, so for those users we have included a Config::incluster_dns to work around the old rustls issue while it is open.

    ... (truncated)

    Commits
    • cd7e00e release 0.76.0
    • da6b5e7 Merge pull request #1051 from teozkr/fix/hoist-enum-values
    • 9dd40ab Merge branch 'main' into fix/hoist-enum-values
    • 9d1a554 Remove native-tls feature (#1044)
    • 0faf86a Merge branch 'main' into fix/hoist-enum-values
    • 0b12c6a Merge pull request #1052 from teozkr/clippy/2022-10-14
    • f2f9c44 Use _else variants for constructing errors
    • 468bb81 Use immediate format interpolation where possible
    • d2f90fb s/sex/gender/g in test case
    • 4c5e5a3 Hoist enum values from subschemas
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): update darling requirement from 0.13.1 to 0.14.2

    chore(deps): update darling requirement from 0.13.1 to 0.14.2

    Updates the requirements on darling to permit the latest version.

    Release notes

    Sourced from darling's releases.

    v0.14.2

    • Derived impls of FromMeta will now error on literals, rather than silently ignoring them. #193
    • Don't include property paths in compile errors when spans are available. #203
    Changelog

    Sourced from darling's changelog.

    v0.14.2 (October 26, 2022)

    • Derived impls of FromMeta will now error on literals, rather than silently ignoring them. #193
    • Don't include property paths in compile errors when spans are available. #203

    v0.14.1 (April 28, 2022)

    • Fix a bug where using a trait that accepts #[darling(attributes(...))] without specifying any attributes would emit code that did not compile. #183
    • Impl Clone for darling::Error #184
    • Impl From<darling::Error> for syn::Error #184
    • Add Error::span and Error::explicit_span methods #184

    v0.14.0 (April 13, 2022)

    • BREAKING CHANGE: Remove many trait impls from util::Flag. This type had a number of deref and operator impls that made it usable as sort-of-a-boolean. Real-world usage showed this type is more useful if it's able to carry a span for good errors, and that most of those impls were unnecessary. #179
    • Remove need for #[darling(default)] on Option<T> and Flag fields #161
    • Improve validation of enum shapes #178
    • Bump proc-macro2 dependency to 1.0.37 #180
    • Bump quote dependency to 1.0.18 #180
    • Bump syn dependency to 1.0.91 #180

    v0.13.4 (April 6, 2022)

    • Impl FromMeta for syn::Visibility #173

    v0.13.3 (April 5, 2022)

    • Add error::Accumulator for dealing with multiple errors #164
    • Impl FromMeta for syn::Type and its variants #172

    v0.13.2 (March 30, 2022)

    • Impl FromMeta for syn::ExprPath #169

    v0.13.1 (December 7, 2021)

    • Add FromAttributes trait and macro #151

    v0.13.0 (May 20, 2021)

    • Update darling to 2018 edition #129
    • Error on duplicate fields in #[darling(...)] attributes #130
    • Impl Copy for SpannedValue<T: Copy>
    • Add SpannedValue::map_ref

    v0.13.0-beta (April 20, 2021)

    ... (truncated)

    Commits
    • 2186347 Bump version to 0.14.2
    • 6ba9735 Only include error locations when necessary
    • f77e999 Update docs
    • ab279f5 Fix clippy violation
    • 2dd15cd Fix clippy violations in integration test
    • 9e4ad34 Add #193 to changelog
    • 161587a Emit Error when parsing FromMeta containing NestedMeta::Lit (#193)
    • fad4cb7 Do not panic in Accumulator::drop() if we are already panicking
    • b71b23e Fix clippy violation
    • ccdcd5b Bump version to 0.14.1
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): update sysinfo requirement from 0.26.8 to 0.27.1

    chore(deps): update sysinfo requirement from 0.26.8 to 0.27.1

    Updates the requirements on sysinfo to permit the latest version.

    Changelog

    Sourced from sysinfo's changelog.

    0.27.1

    • Unix systems: Fix network address segfault issue.

    0.27.0

    • Add NetworkExt::mac_address method and MacAddr type.
    • Linux: Fix truncated environment retrieval.
    • Implement TryFrom<usize> and FromStr for Gid and Uid.
    • Implement TryFrom<usize> for Pid.
    • Fix documentation of System::new about CPU list not loaded by default.

    0.26.8

    • Add ProcessExt::session_id method.
    • Linux: Ignore NFS disks.

    0.26.7

    • Apple: Greatly improve disk retrieval (I recommend reading the pull request first comment for more information here: GuillaumeGomez/sysinfo#855).
    • Remove build script.

    0.26.6

    • Add Process::wait.
    • Add "Good pratice" entry into the crate level documentation and in the README.
    • Linux: More precise used memory computation.

    0.26.5

    • Windows: Fix disk information retrieval.
    • Linux: Improve Process document.
    • Linux: Fix a compilation error if the apple-sandbox feature is enabled.
    • Internal code improvements.

    0.26.4

    • Add SystemExt::distribution_id method.
    • Update ntapi version to 0.4.
    • Update minimum supported Rust version (MSRV) to 1.59 for ntapi 0.4.

    0.26.3

    • Update minimum supported Rust version (MSRV) to 1.56 to follow once_cell minor update.

    0.26.2

    • Linux: Fix process information retrieval.
    • Linux: Get more components temperature.
    • Linux: Fix disk name retrieval (which in turn fixed disk type retrieval).

    ... (truncated)

    Commits

    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)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): update serde_yaml requirement from 0.8.23 to 0.9.16

    chore(deps): update serde_yaml requirement from 0.8.23 to 0.9.16

    Updates the requirements on serde_yaml to permit the latest version.

    Commits
    • e8fbca6 Release 0.9.16
    • 80ad630 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 2d0b7bd Release 0.9.15
    • f542f4b Remove major versions reminder
    • f2deee6 Update build status badge
    • 490b0c3 Time out workflows after 45 minutes
    • dd8e5cc Fix renamed let_underscore_drop lint
    • 8948d36 Release 0.9.14
    • 8d95125 Merge pull request #339 from dtolnay/deserializertaggedvalue
    • 371f764 Implement Deserializer for TaggedValue and &TaggedValue
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): update lru requirement from 0.7.5 to 0.8.1

    chore(deps): update lru requirement from 0.7.5 to 0.8.1

    Updates the requirements on lru to permit the latest version.

    Changelog

    Sourced from lru's changelog.

    v0.8.1 - 2022-10-01

    • Add "caching" and "no-std" to list of categories.

    v0.8.0 - 2022-09-11

    • Use NonZeroUsize for LRU capacity instead of usize.
    • Add get_or_insert_mut method which is similiar to get_or_insert but returns a mutable reference instead of an immutable reference.
    • Add LruCache::promote and LruCache::demote API to manipulate LRU order of the entry directly.

    v0.7.8 - 2022-07-19

    • Update dependency on hashbrown to 0.12.

    v0.7.7 - 2022-06-14

    • Use FnOnce instead of Fn for trait bound of fn in get_or_insert.

    v0.7.6 - 2022-05-25

    • Add pop_entry method.

    v0.7.5 - 2022-04-04

    • Add push method.

    v0.7.4 - 2022-04-03

    • Implement IntoIterator trait and fix lifetime bug in get_or_insert.

    v0.7.3 - 2022-02-28

    • Add get_or_insert method.

    v0.7.2 - 2021-12-28

    • Explicitly implement Borrow for Box for non-nightly.

    v0.7.1 - 2021-12-18

    • Fix lifetime of iterators.

    v0.7.0 - 2021-09-14

    • Explicitly implement Borrow for String and Vec types for non-nightly.

    v0.6.6 - 2021-07-28

    • Update dependency on hashbrown to 0.11.2.

    ... (truncated)

    Commits
    • cf063f6 Merge pull request #156 from jeromefroe/jerome/prepare-0-8-1-release
    • 3d69719 Prepare 0.8.1 release
    • 6db1654 Merge pull request #155 from rtzoeller/add-categories
    • f6ada6a Add categories to Cargo.toml
    • e2e887e Merge pull request #154 from jeromefroe/jerome/prepare-0-8-0-release
    • b388382 Prepare 0.8.0 release
    • 29561cb Merge pull request #152 from matklad/promete-demote
    • ad3adcc Add API to directly manipulate LRU order
    • ff6c80e Merge pull request #151 from Yosi-Hezi/get_mut_or_insert
    • d5230df Merge pull request #153 from matklad/lifetime-bug
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): update etcd-rs requirement from 0.6 to 1.0

    chore(deps): update etcd-rs requirement from 0.6 to 1.0

    Updates the requirements on etcd-rs to permit the latest version.

    Commits
    • 2ccbcd6 build: bump version v1.0.0
    • 91c1c47 feat(watch): set hasleader metadata (#82)
    • 0d233fc use i64 for lease ttl and LeaseId type for ttl request (#81)
    • e5e1158 build: bump version v1.0.0-alpha.3
    • efc18ec Fix keep_alive_for by sending an initial keep alive request, otherwise the re...
    • 2d48913 Fix lease keep alive visibility. (#77)
    • 5d9019f Derive clone, hash, eq for KeyRange to allow it to be stored in a map. (#75)
    • 22c5341 Fix watcher type visibility, fix deprecated function usage. (#74)
    • baacb7a build: bump version 1.0.0-alpha.2
    • afddc17 add prev_kv field to watch event (#72)
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 0
  • chore(deps): update env_logger requirement from 0.9.0 to 0.10.0

    chore(deps): update env_logger requirement from 0.9.0 to 0.10.0

    Updates the requirements on env_logger to permit the latest version.

    Changelog

    Sourced from env_logger's changelog.

    0.10.0 - 2022-11-24

    MSRV changed to 1.60 to hide optional dependencies

    Fixes

    • Resolved soundness issue by switching from atty to is-terminal

    Breaking Changes

    To open room for changing dependencies:

    • Renamed termcolor feature to color
    • Renamed atty feature to auto-color

    0.9.3 - 2022-11-07

    • Fix a regression from v0.9.2 where env_logger would fail to compile with the termcolor feature turned off.

    0.9.2 - 2022-11-07

    • Fix and un-deprecate Target::Pipe, which was basically not working at all before and deprecated in 0.9.1.

    0.9.0 -- 2022-07-14

    Breaking Changes

    • Default message format now prints the target instead of the module

    Improvements

    • Added a method to print the module instead of the target
    Commits

    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)
    dependencies 
    opened by dependabot[bot] 0
Owner
Sentinel Group
This group is used for hosting Sentinel eco-system.
Sentinel Group
Build, bundle & ship your Rust WASM application to the web.

Trunk Build, bundle & ship your Rust WASM application to the web. ”Pack your things, we’re going on an adventure!” ~ Ferris Trunk is a WASM web applic

Anthony Dodd 2.2k Jan 7, 2023
Search Confluence from Alfred and open results in your browser.

Alfred Confluence Workflow Search Confluence from Alfred and open results in your browser. Features Search Confluence from Alfred and open results in

Johan M. 26 Nov 7, 2022
Proxies all incoming connections to a minecraft server of your choosing, while also logging all ping and login requests to a json file and discord webhook.

minecraft-honeypot Proxies all incoming connections to a minecraft server of your choosing, while also logging all ping and login requests to a json f

Cleo 19 Jan 4, 2023
Deserialize (potentially nested) environment variables into your custom structs

envious allows you to deserialize your serde enabled structs from environment variables. See it in action: use serde::{Deserialize, Serialize}; #[der

Marcel Müller 46 Feb 19, 2023
Share files between devices using your Wi-Fi network.

swift_file Rust implementation of transferring files between devices over Wi-Fi network using a QR code. Tool is inspired by claudiodangelis/qrcp. How

Mateo Radman 10 Jun 7, 2023
Axum + JWT authentication Middleware that allows you to start building your application fast

axum_jwt_ware Integration Guide Simple Axum + JWT authentication middleware with implemented Login and refresh token. Goal I aim to simplify the proce

Eze Sunday 3 Dec 2, 2023
Awtomate your 🦀 microservices with awto

awto Awtomate your ?? microservices with awto What is awto? Awto treats your rust project as the source of truth for microservices, and generates data

Awto 22 Nov 4, 2022
Real-time UI for bots, microservices, and IoT

Real-time UI for bots, microservices, and IoT

RillRate 399 Jan 7, 2023
A template project to demonstrate how to run WebAssembly functions as sidecar microservices in dapr

Demo and tutorials Live Demo | Tutorial article | Tutorial video 1. Introduction DAPR is a portable, event-driven runtime that makes it easy for any d

Second State 184 Dec 29, 2022
Blazingly fast framework for in-process microservices on top of Tower ecosystem

norpc = not remote procedure call Motivation Developing an async application is often a very difficult task but building an async application as a set

Akira Hayakawa 15 Dec 12, 2022
Reverse proxy for HTTP microservices and STDIO. Openfass watchdog which can run webassembly with wasmer-gpu written in rust.

The of-watchdog implements an HTTP server listening on port 8080, and acts as a reverse proxy for running functions and microservices. It can be used independently, or as the entrypoint for a container with OpenFaaS.

yanghaku 7 Sep 15, 2022
Volo is a high-performance and strong-extensibility Rust RPC framework that helps developers build microservices.

Volo is a high-performance and strong-extensibility Rust RPC framework that helps developers build microservices.

CloudWeGo 1.3k Jan 2, 2023
Generates a big overview of dependencies between microservices using pact-broker

Pact graph network Generates a schema of dependencies between microservices using pact-broker data. Table of contents Screenshots Tech Stack Features

ManoMano Tech 3 Dec 15, 2022
Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transactions of your non-custodial wallets on a provider of your choice, all while respecting your privacy

Bitcoin Push Notification Service (BPNS) Description Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transacti

BPNS 1 May 2, 2022
deductive verification of Rust code. (semi) automatically prove your code satisfies your specifications!

Le marteau-pilon, forges et aciéries de Saint-Chamond, Joseph-Fortuné LAYRAUD, 1889 About Creusot is a tool for deductive verification of Rust code. I

Xavier Denis 609 Dec 28, 2022
Employ your built-in wetware pattern recognition and signal processing facilities to understand your network traffic

Nethoscope Employ your built-in wetware pattern recognition and signal processing facilities to understand your network traffic. Check video on how it

Vesa Vilhonen 86 Dec 5, 2022
🐢 Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands

Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.

Ellie Huxtable 4.6k Jan 1, 2023
Save image from your clipboard 📋 as an image file directly from your command line! 🔥

Clpy ?? Save copied image from clipboard as an image file directly from your command line! Note It works only on windows as of now. I'll be adding sup

Piyush Suthar 13 Nov 28, 2022
Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and battery life of your device.

Universal Android Debloater GUI DISCLAIMER: Use it at your own risk. I am not responsible for anything that could happen to your phone. This software

w1nst0n 7k Jan 7, 2023
FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config.

Connect quickly to your services ?? FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config. Instal

Julien 85 Dec 14, 2022