📊 Collect cloud usage data, so that it can be combined with impact data of Boavizta API.

Overview

cloud-scanner

Collect aws cloud usage data, so that it can be combined with impact data of Boavizta API.

Very early Work in progress !

At the moment it just returns impacts of your aws instances. It does not use metrics of instance usage to calculate the impacts, but rather returns the default impact data provided by API for each instance types.

Scanner in context

Getting started

List AWS instances of the account

Using default account region.

export AWS_PROFILE='<YOUR_PROFILE_NAME>'
cargo run -- --text

List impacts of AWS instances of the account

Using default account region.

export AWS_PROFILE='<YOUR_PROFILE_NAME>'
cargo run

Get impact of your instances for a given period

TODO

  • pass period parameter (start date / end date)
  • define a sampling rate for cloudwatch metrics retrieval?

Usage

Cli options

cargo run -- --help

cloud-scanner-cli 0.0.1
AWS account scanner to list instances.

USAGE:
    cloud-scanner-cli [FLAGS] [OPTIONS]

FLAGS:
    -h, --help            Prints help information
    -l, --list-metrics    Display available metrics
    -t, --text            Display results as text (instead of json)
    -V, --version         Prints version information

OPTIONS:
    -f, --filter-tags <filter-tags>...    Filter instances on tags (like tag-key-1=val_1 tag-key_2=val2)

Passing AWS credentials

Easiest way is use an environment variable to use a specific aws profile.

export AWS_PROFILE='<YOUR_PROFILE_NAME>'

Filtering resources

Not yet implemented

Output format

Cloud scanner returns json array of instances metadata (instanceid, tags and type and default usage impacts) on stdout.

Will soon return

  • an array of instances with impacts tuned with usage/workload (json)

Generate / update Boavizta API sdk

docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate -i http://api.boavizta.org/openapi.json   -g rust  -o /local/boavizta-api-sdk --package-name boavizta_api_sdk
Comments
  • Compilation error : failed to run custom build command for 'ring v0.16.20'

    Compilation error : failed to run custom build command for 'ring v0.16.20'

    Hello everyone I hava an issue when I want to execute this command : serverless deploy

    My terminal show me an error and after many and many attempts, I don't know what to do.

    Here's the error : image

    bug 
    opened by albanducos87 7
  • Compilation error : thread 'main' panicked at 'called `Result::unwrap()`

    Compilation error : thread 'main' panicked at 'called `Result::unwrap()`

    Hello When I'm trying to build the cloud scanner, there is an issue that stops me. I'm trying to run the following command : cargo run --bin cloud-scanner-cli standard --hours-use-time 10 | jq

    And here is the error : image

    Do you have a solution please ? Thanks !

    bug 
    opened by albanducos87 6
  • Publish docker image to a public registry

    Publish docker image to a public registry

    Problem

    Docker image is currently build in CI and available only on the private registry of this project. Cannot be retrieved without authentication / proper permission which make deployment difficult in Enterprise context.

    Solution

    Publish the image to docker registry.

    Not sure if Boavizta org has account / credentials setup for docker registry.

    Alternatives

    Additional context or elements

    enhancement 
    opened by demeringo 6
  • Get impact by scanning a cloud account

    Get impact by scanning a cloud account

    A a person who manage an AWS account, I want to run cloud scanner to retrieve the impacts of the resources in my account.

    At first, this scanner is intended to be run manually, as a CLI tool, but we should consider wrapping it in a serverless function later.

    duplicate enhancement 
    opened by demeringo 4
  • Explicitly log the Boavizta API URL used by the scanner

    Explicitly log the Boavizta API URL used by the scanner

    Problem

    When passing a custom URL (-b option) to the scanner, there is no easy way to be sure of what is used by the scanner.

    Solution

    Log explicitly the URL used when calling the Boavizta API.

    Alternatives

    Additional context or elements

    enhancement 
    opened by demeringo 3
  • Use instance usage metrics to query API (impacts of usage/workload)

    Use instance usage metrics to query API (impacts of usage/workload)

    Problem

    Current version of cloud-scanner only returns defaults impacts of the aws cloud instances (i.e. the usage rate of instances is not considered, only instance types).

    Solution

    Retrieve instance usage metrics from AWS API and use them when querying Boavizta API to get more realistic results.

    Additional context or elements

    See meta issue here #3

    • More info about how to query metrics statistics (like average cpu utilization for a given time period) of a single instance:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SingleMetricPerInstance.html

    • Python sample code using aws sdk https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/example_cloudwatch_GetMetricStatistics_section.html

    • And the corresponding function in rust aws sdk: https://docs.rs/aws-sdk-cloudwatch/0.11.0/aws_sdk_cloudwatch/client/struct.Client.html#method.get_metric_statistics

    • Cloudwatch general concepts: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#dimension-combinations

    Example payload format for custom cloud usage query on Boavizta API

    {
      "hours_use_time": 2,
      "usage_location": "FRA",
      "workload": {
        "10": {
          "time": 0
        },
        "50": {
          "time": 1
        },
        "100": {
          "time": 0
        },
        "idle": {
          "time": 0
        }
      }
    }
    
    enhancement 
    opened by demeringo 3
  • The serve metrics function does not work in docker container

    The serve metrics function does not work in docker container

    Bug description

    When running cloud scanner in docker, the servefunction does not start (nothing seems exposed on 127.0.0.1:8000).

    To Reproduce

    Expected behavior

    JSON OUTPUT

    Additional context

    This is not only related to the missing expose port in docker file #153 , despite adding it on local test and it does not fix the startup.

    bug 
    opened by demeringo 2
  • Document the deployment of scanner to display metrics in prometheus and grafana

    Document the deployment of scanner to display metrics in prometheus and grafana

    Problem

    We can use cloud scanner to export metrics that can be aggregated in a prometheus and displayed in grafana.

    Solution

    Document this setup, maybe provide a demo dashboard that could easily be imported in grafana.

    documentation 
    opened by demeringo 2
  • Export Boavizta API rust SDK to it's own crate and repository

    Export Boavizta API rust SDK to it's own crate and repository

    Problem

    The generated SDK used to wrap calls to Boavizta API is embeded in the codebase of cloud-scanner. It makes it heavy and unpractical to maintain (or resuer)

    Solution

    Extract the Boavizta API Rust SDK to it's own repository and publish it as a crate. As a first step, this extract will be just a manual copy / publish of existing code (not necessary to automate it).

    Alternatives

    • (abandonned) Publish the Rust SDK directly from the Boavizta API repository

    Additional context or elements

    We tried first to publish rhe Rust SDK in the CI chain of Boavizta API repository (see https://github.com/Boavizta/boaviztapi/issues/84), but it turns out it is not very practical because:

    • the publish model for crate.io recommends that the code published as crate is available in public repo
    • it is generated code (so it is not commited by default inside Boavizta API repo)
    • it may require manual adaptations to conform to clippy rules
    • it seems easier to maintain in it's own repository (and avoid mixing concerns with Boavizta API repository
    enhancement good first issue 
    opened by demeringo 2
  • Use publicly available BoaviztApi rust SDK instead of local version

    Use publicly available BoaviztApi rust SDK instead of local version

    Problem

    Cloud scanner uses a local version of Boavizta rust SDK that can be outdated compared to API release.

    Solution

    Migrate to use publicly available SDK (from crate.io) once it i published, see https://github.com/Boavizta/boaviztapi/issues/84

    Alternatives

    Additional context or elements

    enhancement good first issue 
    opened by demeringo 2
  • Stabilize CLI options

    Stabilize CLI options

    Problem

    Cloud scanner CLI is lacking some options and lacks adaptability.

    Solution

    CLI covers 2 use cases (subcommands) which needs different flags or set of options.

    • get Average (standard) impacts for a given usage duration
    • get Mesured impacts: depending on usage rate (use instance workload), in this case we want to use a start and end date

    In addition we need to provide

    • the region (s) to scan (optional)
    • the name for the ouptut file to be saved (optional, default to stdout)
    • a list of tags/values that will be used to filter instances (optional)

    Alternatives

    Additional context or elements

    This CLAP tutorial seems to explain all we need : https://blog.logrocket.com/command-line-argument-parsing-rust-using-clap/

    documentation enhancement 
    opened by demeringo 2
  • chore(deps): bump serde from 1.0.150 to 1.0.152

    chore(deps): bump serde from 1.0.150 to 1.0.152

    Bumps serde from 1.0.150 to 1.0.152.

    Release notes

    Sourced from serde's releases.

    v1.0.152

    • Documentation improvements

    v1.0.151

    • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#2344)
    Commits
    • ccf9c6f Release 1.0.152
    • b25d0ea Link to Hjson data format
    • 4f4557f Link to bencode data format
    • bf400d6 Link to serde_tokenstream data format
    • 4d2e36d Wrap flexbuffers bullet point to 80 columns
    • df6310e Merge pull request #2347 from dtolnay/docsrs
    • 938ab5d Replace docs.serde.rs links with intra-rustdoc links
    • ef5a0de Point documentation links to docs.rs instead of docs.serde.rs
    • 5d186c7 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 44bf363 Release 1.0.151
    • Additional commits viewable in compare view

    Dependabot compatibility score

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


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump serverless from 3.22.0 to 3.26.0

    chore(deps-dev): bump serverless from 3.22.0 to 3.26.0

    Bumps serverless from 3.22.0 to 3.26.0.

    Release notes

    Sourced from serverless's releases.

    3.26.0 (2022-12-22)

    Features

    Bug Fixes

    Maintenance Improvements


    Comparison since last release

    3.25.1 (2022-11-28)

    Maintenance Improvements


    Comparison since last release

    3.25.0 (2022-11-21)

    Features

    Bug Fixes


    Comparison since last release

    3.24.1 (2022-11-04)

    ... (truncated)

    Changelog

    Sourced from serverless's changelog.

    3.26.0 (2022-12-22)

    Features

    Bug Fixes

    Maintenance Improvements

    3.25.1 (2022-11-28)

    Maintenance Improvements

    3.25.0 (2022-11-21)

    Features

    Bug Fixes

    3.24.1 (2022-11-04)

    Bug Fixes

    3.24.0 (2022-10-31)

    ... (truncated)

    Commits

    Dependabot compatibility score

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


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Retrieve and display instance tags with inventory

    Retrieve and display instance tags with inventory

    Problem

    Instance tags are not shown in inventory.

    Solution

    Retrieve tags an display them with json inventory.

    Alternatives

    Additional context or elements

    enhancement 
    opened by demeringo 0
  • chore(deps): bump serde_json from 1.0.89 to 1.0.91

    chore(deps): bump serde_json from 1.0.89 to 1.0.91

    Bumps serde_json from 1.0.89 to 1.0.91.

    Release notes

    Sourced from serde_json's releases.

    v1.0.91

    • Opt out of -Zrustdoc-scrape-examples on docs.rs for now

    v1.0.90

    • Documentation improvements
    Commits
    • 26f147f Release 1.0.91
    • d9cdb98 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 331511d Release 1.0.90
    • 8753829 Replace ancient CI service provider in readme
    • 0a43394 Update build status badge
    • 8794844 Prevent build.rs rerunning unnecessarily on all source changes
    • 0b54871 Time out workflows after 45 minutes
    • ecad462 Fix renamed let_underscore_drop lint
    • 9295c96 Resolve needless_borrowed_reference clippy lints
    • See full diff in compare view

    Dependabot compatibility score

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


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • chore(deps): bump lambda_runtime from 0.6.1 to 0.7.2

    chore(deps): bump lambda_runtime from 0.6.1 to 0.7.2

    Bumps lambda_runtime from 0.6.1 to 0.7.2.

    Release notes

    Sourced from lambda_runtime's releases.

    lambda_http v0.7.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/awslabs/aws-lambda-rust-runtime/compare/v0.7.0...v0.7.1-lambda-http

    v0.7.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/awslabs/aws-lambda-rust-runtime/compare/v0.6.1...v0.7.0

    v0.6.2-lambda-http

    What's Changed

    Full Changelog: https://github.com/awslabs/aws-lambda-rust-runtime/compare/v0.6.1...v0.6.2-lambda-http

    Commits

    Dependabot compatibility score

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


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
  • chore(deps): bump lambda_http from 0.6.2 to 0.7.2

    chore(deps): bump lambda_http from 0.6.2 to 0.7.2

    Bumps lambda_http from 0.6.2 to 0.7.2.

    Release notes

    Sourced from lambda_http's releases.

    lambda_http v0.7.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/awslabs/aws-lambda-rust-runtime/compare/v0.7.0...v0.7.1-lambda-http

    v0.7.0

    What's Changed

    New Contributors

    Full Changelog: https://github.com/awslabs/aws-lambda-rust-runtime/compare/v0.6.1...v0.7.0

    Commits

    Dependabot compatibility score

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


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 0
Releases(v0.2.0)
  • v0.2.0-alpha.1(Dec 7, 2022)

  • 0.1.0-alpha.2(Dec 7, 2022)

  • 0.1.0(Dec 7, 2022)

    What's Changed

    • ⚠ WIP: test using aws sdk with Rust by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/5
    • Update CLI options by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/19
    • Feature/docker image by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/22
    • Feat/logger by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/23
    • Sls test by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/25
    • feat: reduce docker image size by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/28
    • Feat/display lib version in serverless app by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/32
    • Chore/deps by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/38
    • chore(deps): bump aws-sdk-cloudwatch from 0.12.0 to 0.13.0 by @dependabot in https://github.com/Boavizta/cloud-scanner/pull/33
    • chore(deps): bump aws-sdk-ec2 from 0.12.0 to 0.13.0 by @dependabot in https://github.com/Boavizta/cloud-scanner/pull/34
    • chore(deps): bump aws-config from 0.12.0 to 0.13.0 by @dependabot in https://github.com/Boavizta/cloud-scanner/pull/35
    • chore(deps): bump clap from 3.1.18 to 3.2.5 by @dependabot in https://github.com/Boavizta/cloud-scanner/pull/36
    • chore(deps): bump tokio from 1.18.2 to 1.19.2 by @dependabot in https://github.com/Boavizta/cloud-scanner/pull/37
    • Feat/map cli params to lambda by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/45
    • Feat/export scan summary as metrics by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/56
    • Doc by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/84
    • chore(deps-dev): bump serverless from 3.19.0 to 3.22.0 by @dependabot in https://github.com/Boavizta/cloud-scanner/pull/85
    • chore(deps): bump lambda_http from 0.5.2 to 0.6.0 by @dependabot in https://github.com/Boavizta/cloud-scanner/pull/70
    • chore(deps): bump prometheus-client from 0.16.0 to 0.18.0 by @dependabot in https://github.com/Boavizta/cloud-scanner/pull/86
    • chore: update rust dependencies by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/91
    • Feat/allow private boavizta api by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/99
    • Clippy fixes by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/113
    • Feat: improve error handling by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/117
    • Upgrade to Clap v4.0.x by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/119
    • fix: correct default API URL. by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/126
    • feat: use external crate for Boavizta API SDK. by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/124
    • feat: use boaviztapi sdk 1.0.2 by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/127
    • feat: cargo run executes the CLI by default. by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/129
    • Feat/http metric endpoint by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/151
    • fix: container does not expose port 8000. by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/154
    • Add Docker compose with configuration files for prometheus and grafana by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/157
    • Feat/demo dashboard update and doc by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/159
    • fix: podman-compose does not find images of docker-compose file. by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/168
    • WIP: refactor to ease testing and evolutions by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/139
    • WIP integrate with Boaviztapi v0.2.x to use regression and consumptions profiles. by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/130
    • fix: in version of Boavizta images in docker compose. by @demeringo in https://github.com/Boavizta/cloud-scanner/pull/178

    New Contributors

    • @demeringo made their first contribution in https://github.com/Boavizta/cloud-scanner/pull/5
    • @dependabot made their first contribution in https://github.com/Boavizta/cloud-scanner/pull/33

    Full Changelog: https://github.com/Boavizta/cloud-scanner/commits/0.1.0

    Source code(tar.gz)
    Source code(zip)
Owner
Boavizta
Boavizta
A wrapper for the Google Cloud DNS API

cloud-dns is a crate providing a client to interact with Google Cloud DNS v1

Embark 5 May 24, 2022
A library-first, lightweight, high-performance, cloud-native supported API gateway🪐 by RUST

Preview version, will not guarantee the stability of the API! Do NOT use in production environment! A library-first, lightweight, high-performance, cl

Ideal World 4 May 7, 2023
A modest URL shortener for personal usage.

bref A modest URL shortener for personal usage. Shortens URLs to a 6 characters-length key that is generated based on current time. Why? Why not? Usag

Nicolas Gryman 3 Oct 8, 2023
Implementation of the Docker Registry HTTP API V2 in Rust, that can act as a proxy to other registries

Docker registry server and proxy (I'm bad at creating catchy names, but this one is good enough.) This project aims to implement a Docker Registry HTT

l4p1n (Mathias B.) 2 Dec 30, 2022
Rust client for NATS, the cloud native messaging system.

A Rust client for the NATS messaging system. Status Motivation Rust may be the most interesting new language the NATS ecosystem has seen. We believe t

NATS - The Cloud Native Messaging System 651 Jan 3, 2023
Filen.io is a cloud storage provider with an open-source desktop client.

Library to call Filen.io API from Rust Filen.io is a cloud storage provider with an open-source desktop client. My goal is to write a library which ca

Konstantin Zakharov 5 Nov 15, 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
Cloud Native high performance security and privacy SQL proxy.

Fern proxy With the advent of Cloud Native applications, architecture patterns evolved and emerged to take advantage of cloud computing, and build mor

Fern 12 Nov 7, 2022
A tool to export TiDB database data to files in cases where the TiDB server can't be restored.

tidb-exporter TiDB uses RocksDB as default storage engine(in fact, TiKV uses it). tidb-exporter can export data from pure RocksDB data files even when

zz 7 Nov 1, 2023
Modrinth API is a simple library for using Modrinth's API in Rust projects

Ferinth is a simple library for using the Modrinth API in Rust projects. It uses reqwest as its HTTP(S) client and deserialises responses to typed structs using serde.

null 20 Dec 8, 2022
The Safe Network Core. API message definitions, routing and nodes, client core api.

safe_network The Safe Network Core. API message definitions, routing and nodes, client core api. License This Safe Network repository is licensed unde

MaidSafe 101 Dec 19, 2022
Proxy copilot api to openai's gpt-4 api

Proxying Copilot API to OpenAI's GPT-4 API Usage Start the Server export GHU_TOKEN=ghu_xxxx; ./copilot2chat Or sh start.sh start # start the server th

Smark 3 Dec 6, 2023
Transforms UDP stream into (fake) TCP streams that can go through Layer 3 & Layer 4 (NAPT) firewalls/NATs.

Phantun A lightweight and fast UDP to TCP obfuscator. Table of Contents Phantun Latest release Overview Usage 1. Enable Kernel IP forwarding 2. Add re

Datong Sun 782 Dec 30, 2022
The goal of this challenge is to create an isometric, decorated scene in which the character can move around the objects in the room.

The goal of this challenge is to create an isometric, decorated scene in which the character can move around the objects in the room.

Ivan Reshetnikov 0 Feb 4, 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
「🧱」Test a list of payloads and see if you can bypass it

「 ?? 」About TTWAF TTWAF, or Test This WAF, is a Web Application Firewall (WAF) bypass testing tool. You can test a list of payloads like XSS, LFI, RCE

Amolo Hunters 20 Dec 2, 2022
Tiny CLI application in rust to scan ports from a given IP and find how many are open. You can also pass the amount of threads for that scan

Port Scanner A simple multi-threaded port scanner written in Rust. Usage Run the port scanner by providing the target IP address and optional flags. $

nicolas lopes 4 Aug 29, 2023
Rust crate providing a variety of automotive related libraries, such as communicating with CAN interfaces and diagnostic APIs

The Automotive Crate Welcome to the automotive crate documentation. The purpose of this crate is to help you with all things automotive related. Most

I CAN Hack 29 Mar 11, 2024
Docker daemon API in Rust

Bollard: an asynchronous rust client library for the docker API Bollard leverages the latest Hyper and Tokio improvements for an asynchronous API cont

Niel Drummond 439 Jan 3, 2023