Automatically deploy from GitHub to Replit, lightning fast ⚡️

Overview
blueprint illustration

repl.deploy

Automatically deploy from GitHub to Replit, lightning fast ⚡️

build language code size issues license version

repl.deploy - Automatically deploy from GitHub to Replit, lightning fast | Product Hunt




repl.deploy is split into

  • A GitHub app, which listens for code changes and sends events to your repl
  • A daemon, which runs on your repl, listens for events, fetches changes from GitHub and restarts your application

Table of Contents

Usage

  1. Authorize repl.deploy to get events from GitHub

  2. Make sure you have a main branch on your origin remote

  3. Add replit-deploy.json to your git repository with a single endpoint key, which is the address of your repl + /refresh. E.g.

{
    "endpoint": "https://my-amazing-application.my-username.repl.co/refresh"    
}
  1. Clone your git repository to your repl

  2. Download repl.deploy to the root of your repl -- Open the shell, and run

curl -sL https://repl-deploy.vercel.app/ -o repl.deploy.tar.gz 
tar xf repl.deploy.tar.gz
rm repl.deploy.tar.gz

WARNING: Proceeding will overwrite any local changes and reset from your GitHub repo. Commit AND push any local changes BEFORE running repl.deploy

  1. For repls that do not use an HTTP server in their code (See example)

    • Create/modify the .replit file in the root of your repl and change run= to run ./repl.deploy --standalone <command to run your code here>. E.g.
    run="./repl.deploy --standalone node index.js"
    
  2. For repls that use an HTTP server in their code (See example)

    • Create/modify the .replit file in the root of your repl and change run= to run ./repl.deploy <command to run your code here>. E.g.
    run="./repl.deploy node index.js"
    
    • Set up the /refresh endpoint, and log a line in the following format to stdout when a request is recieved: repl.deploy<insert json body here (don't include the angle brackets)><insert "Signature" header here (don't include the angle brackets)>. E.g.
    repl.deploy{"timestamp":1615896087141,"endpoint":"https://8c051d0fbc4b.ngrok.io/refresh"}ostjM6/jGmHbRWcHazxKWSPmvgvoIryI9XxLgNKgxPCKRW==
    
    • Your application will recieve JSON via stdin. E.g.
    {"status":"403","body":"Invalid Signature"}
    

    simply respond with the given status and body (see example)

    • Once you've responded, log (to stdout)
    repl.deploy-success
    
  3. Click Run once. Make sure your repl is set to always-on or has a pinging service set up (otherwise, the daemon will be stopped by repl once you close your browser tab)

  4. That's it! Repl.it should automatically pull changes from GitHub the next time you commit

How?

  • When you commit, GitHub sends an event to a hosted instance of the repl.deploy server

  • A payload consisting of both the endpoint and the current time is prepared and signed with an RSA private key

  • The daemon running on the repl recieves the payload, and

    • Verifies the signature
    • Checks that the endpoint matches (this is to prevent someone from just forwarding a signed request to your repl and causing it to restart)
    • Checks that the timestamp is less than 15 seconds old (this is to prevent someone from abusing a signature in the event that a signed request is leaked by you)
  • If the request is valid, the daemon

    • runs git fetch --all and then git reset --hard origin/main
    • restarts your program

FAQ

  • Q: What does run="./repl.deploy --standalone node index.js" do?
    A: It makes the Replit Run button run the daemon instead of executing the program directly, which then executes/re-executes the program on git push

  • Q: Does repl.deploy need to be downloaded every time the program is run?
    A: No, repl.deploy only needs to be downloaded once per repl

  • Q: What's https://repl-deploy.vercel.app/?
    A: A hosted version of getReleaseURL, which saves you the time of manually finding the latest release and linking it.

Supporters

Stargazers repo roster for @KhushrajRathod/repl.deploy

Forkers repo roster for @KhushrajRathod/repl.deploy

Comments
  • Documentation and installing

    Documentation and installing

    I have some suggestions/questions:

    1. Explain what run="./repl.deploy --standalone node index.js" does exactly
    2. Explain what the /refresh ending means.
    3. Does it need to be downloaded every time? Can I just download it once? Do I have to use this link which is not a https://github.com link: https://repl-deploy.vercel.app/? (people might ask this for security reasons)
    documentation good first issue 
    opened by quackduck 23
  • Permission denied appears randomly after closing the Replit window

    Permission denied appears randomly after closing the Replit window

    Context

    All the steps in the guide work great, the bot stays awake and receives the github deploys. However, yesterday stopped performing the deploys and also didn't start the bot.

    When I checked what happened, it turned out that the ./repl.deploy file was missing permissions. I applied them again and it worked wonderfully, a few hours later the permits were missing again.

    • Console
    node v12.16.1
    >> ./repl.deploy --standalone node index.js
    sh: 1: ./repl.deploy: Permission denied
    exit status 126
    
    opened by OnlyAlec 3
  • Update dependency typescript to v4.2.4

    Update dependency typescript to v4.2.4

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | typescript (source) | 4.2.3 -> 4.2.4 | age | adoption | passing | confidence |


    Release Notes

    Microsoft/TypeScript

    v4.2.4

    Compare Source

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    Downloads are available on:


    Configuration

    📅 Schedule: "after 1:00am and before 9:00am" in timezone Asia/Kolkata.

    🚦 Automerge: Disabled due to failing status checks.

    ♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    renovate 
    opened by renovate[bot] 2
  • Update dependency @types/node-fetch to v2.5.10

    Update dependency @types/node-fetch to v2.5.10

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @types/node-fetch | 2.5.8 -> 2.5.10 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: "after 1:00am and before 9:00am" in timezone Asia/Kolkata.

    🚦 Automerge: Enabled.

    ♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    renovate 
    opened by renovate[bot] 2
  • Update Rust crate sha2 to 0.9.5

    Update Rust crate sha2 to 0.9.5

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | sha2 | dependencies | patch | 0.9.3 -> 0.9.5 |


    Configuration

    📅 Schedule: "after 1:00am and before 9:00am" in timezone Asia/Kolkata.

    🚦 Automerge: Enabled.

    ♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    renovate 
    opened by renovate[bot] 2
  • Update Rust crate serde to 1.0.126

    Update Rust crate serde to 1.0.126

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde | dependencies | patch | 1.0.125 -> 1.0.126 |


    Configuration

    📅 Schedule: "after 1:00am and before 9:00am" in timezone Asia/Kolkata.

    🚦 Automerge: Enabled.

    ♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    renovate 
    opened by renovate[bot] 2
  • "gzip: stdin: not in gzip format"

    In step 5 of Usage:

    Download repl.deploy to the root of your repl -- Open the shell, and run curl -sL https://repl-deploy.vercel.app/ -o repl.deploy.tar.gz tar xf repl.deploy.tar.gz rm repl.deploy.tar.gz

    tar xf repl.deploy.tar.gz returns:

    gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now

    I feel like this is more of a repl.it problem, but I'll still open and issue here just in case...

    opened by t3chn0T33n-zz 1
  • Configure Renovate

    Configure Renovate

    WhiteSource Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • daemon/Cargo.toml (cargo)
    • .github/workflows/prerelease.yml (github-actions)
    • .github/workflows/release.yml (github-actions)
    • server/package.json (npm)

    Configuration Summary

    Based on the default config's presets, Renovate will:

    • Start dependency updates only once this onboarding PR is merged
    • Separate major versions of dependencies into individual branches/PRs
    • Do not separate patch and minor upgrades into separate PRs for the same dependency
    • Upgrade to unstable versions only if the existing version is unstable
    • Raise PRs immediately (after branch is created)
    • If semantic commits detected, use semantic commit type fix for dependencies and chore for all others
    • Keep existing branches updated even when not scheduled
    • Disable automerging feature - wait for humans to merge all PRs
    • Ignore node_modules, bower_components, vendor and various test/tests directories
    • Autodetect whether to pin dependencies or maintain ranges
    • Rate limit PR creation to a maximum of two per hour
    • Limit to maximum 20 open PRs at any time
    • Group known monorepo packages together
    • Use curated list of recommended non-monorepo package groupings
    • Ignore spring cloud 1.x releases
    • Ignore http4s digest-based 1.x milestones

    🔡 Would you like to change the way Renovate is upgrading your dependencies? Simply edit the renovate.json in this branch with your custom config and the list of Pull Requests in the "What to Expect" section below will be updated the next time Renovate runs.


    What to Expect

    With your current configuration, Renovate will create 10 Pull Requests:

    Pin dependencies
    Update Rust crate serde to 1.0.126
    • Schedule: ["at any time"]
    • Branch name: renovate/serde-1.x
    • Merge into: main
    • Upgrade serde to 1.0.126
    Update Rust crate sha2 to 0.9.5
    • Schedule: ["at any time"]
    • Branch name: renovate/sha2-0.x
    • Merge into: main
    • Upgrade sha2 to 0.9.5
    Update dependency @​types/node-fetch to v2.5.10
    • Schedule: ["at any time"]
    • Branch name: renovate/node-fetch-2.x
    • Merge into: main
    • Upgrade @types/node-fetch to 2.5.10
    Update dependency typescript to v4.2.4
    • Schedule: ["at any time"]
    • Branch name: renovate/typescript-4.x
    • Merge into: main
    • Upgrade typescript to 4.2.4
    Update Rust crate regex to 1.5.4
    • Schedule: ["at any time"]
    • Branch name: renovate/regex-1.x
    • Merge into: main
    • Upgrade regex to 1.5.4
    Update Rust crate tokio to 1.6.0
    • Schedule: ["at any time"]
    • Branch name: renovate/tokio-1.x
    • Merge into: main
    • Upgrade tokio to 1.6.0
    Update dependency @​types/node to v14.17.0
    • Schedule: ["at any time"]
    • Branch name: renovate/node-14.x
    • Merge into: main
    • Upgrade @types/node to 14.17.0
    Update dependency probot to v11.3.0
    • Schedule: ["at any time"]
    • Branch name: renovate/probot-11.x
    • Merge into: main
    • Upgrade probot to 11.3.0
    Update marvinpinto/action-automatic-releases action to v1.2.0

    🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for prhourlylimit for details.


    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by WhiteSource Renovate. View repository job log here.

    opened by renovate[bot] 1
  • repl.deploy tells me im missing a config file

    repl.deploy tells me im missing a config file

    Im trying to make repl.deploy run a python discord bot, but when I run ./repl.deploy --standalone python -m bot it returns

    2021/04/26 18:45:48 Config file doesn't exist

    opened by Kronifer 1
  • Rust rewrite

    Rust rewrite

    • [x] Implement all functionality
    • [x] Restructure to use modules instead of packages
    • [x] Remove logger and switch to https://github.com/seanmonstar/pretty-env-logger
    • [x] Test manually
    • [x] Delete old go code
    opened by khrj 1
  • A setting for specify which branch should deploy

    A setting for specify which branch should deploy

    for example, I want to use replit for beta version of my discord bot. and its in a branch named development. but repl.deploy uses branch main(sorry if my text has grammatical problem)

    opened by nimagp 0
  • Add a setting for repos that use 'master' instead of 'main'

    Add a setting for repos that use 'master' instead of 'main'

    Some repositories don't use main yet and use master. For example, my VSCode allows me to publish to GitHub, but the default branch is called master. Repl.deploy doesn't seem to watch anything from master branches.

    enhancement good first issue 
    opened by writeblankspace 0
  • Lock file maintenance all dependencies (non-major)

    Lock file maintenance all dependencies (non-major)

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | | | lockFileMaintenance | All locks refreshed | | @types/node | devDependencies | patch | All locks refreshed | | @types/sshpk | devDependencies | patch | All locks refreshed | | anyhow | dependencies | patch | All locks refreshed | | rsa | dependencies | minor | All locks refreshed | | serde | dependencies | patch | All locks refreshed | | typescript (source) | devDependencies | minor | All locks refreshed | | serde_json | dependencies | patch | All locks refreshed | | sha2 | dependencies | patch | All locks refreshed | | tokio | dependencies | minor | All locks refreshed |

    🔧 This Pull Request updates lock files to use the latest dependency versions.


    Release Notes

    Microsoft/TypeScript

    v4.4.2

    Compare Source

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    Downloads are available on:


    Configuration

    📅 Schedule: "before 5am on monday" in timezone Asia/Kolkata.

    🚦 Automerge: Disabled due to failing status checks.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    renovate 
    opened by renovate[bot] 2
  • Does not work with private Github repos

    Does not work with private Github repos

    when using private repos, it requires a username and password, when using .replit, it does not ask for this, but simply runs and exits, does not ask for input.

    GitHub also tells me this is a to be deprecated form of login

    "Basic authentication using a password to Git is deprecated and will soon no longer work. Visit https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information around suggested workarounds and removal dates."

    enhancement help wanted 
    opened by THEGODFATHERRX 1
  • Update all dependencies (major) (major)

    Update all dependencies (major) (major)

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @​types/node-fetch | 2.5.12 -> 3.0.2 | age | adoption | passing | confidence | | node-fetch | 2.6.1 -> 3.0.0 | age | adoption | passing | confidence | | probot (source) | 11.4.1 -> 12.1.1 | age | adoption | passing | confidence |


    Release Notes

    node-fetch/node-fetch

    v3.0.0

    Compare Source

    version 3 is going out of a long beta period and switches to stable

    One major change is that it's now a ESM only package See changelog for more information about all the changes

    probot/probot

    v12.1.1

    Compare Source

    Bug Fixes

    v12.1.0

    Compare Source

    Features

    v12.0.0

    Compare Source

    Features
    BREAKING CHANGES
    • remove '*' event
    • app.webhooks.middleware has been removed in @octokit/webhooks v9
    • removes the webhookPath option on new Probot({}) for the webhooks middleware

    Co-authored-by: wolfy1339 [email protected]


    Configuration

    📅 Schedule: "after 1:00am and before 9:00am" in timezone Asia/Kolkata.

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    renovate 
    opened by renovate[bot] 1
Releases(latest)
  • latest(Sep 3, 2021)

  • 1.0.0(May 1, 2021)

    Commits

    • dee55d6 Use one constant declaration instead of many (Khushraj Rathod)
    • 64b9e6c Reformat files (Khushraj Rathod)
    • 5b78463 Prepare for rust rewrite, implement logger (Khushraj Rathod) #4
    • 48e2975 Add tests for logger (Khushraj Rathod) #4
    • c012d4d Implement git updater (Khushraj Rathod) #4
    • 562c6c0 Add tests for git_updater (Khushraj Rathod) #4
    • 4e64b7c Implement signature verifier and tests (Khushraj Rathod) #4
    • 76cd49b Add test to verify payload and signature (entire module) (Khushraj Rathod) #4
    • 384ae76 Consistently format use statements (Khushraj Rathod) #4
    • d187488 Restructure project, implement http_event_handler (Khushraj Rathod) #4
    • 8559846 Fix public_key path in cli/src/lib.rs (Khushraj Rathod) #4
    • ef24a13 Implement stdio_event_handler (Khushraj Rathod) #4
    • 6150ef0 Abstract filtering valid lines and getting matches (Khushraj Rathod) #4
    • 3e6c4bd Delete test stub code (Khushraj Rathod) #4
    • 4ff19d3 Implement CLI (Khushraj Rathod) #4
    • 3226cc5 Fix cargo clippy errors (Khushraj Rathod) #4
    • 8370753 Update release.yml for rust rewrite (Khushraj Rathod) #4
    • 90c05a3 Fix CWD and job names (Khushraj Rathod) #4
    • 42773de Fix CWD to ./daemon/rust-impl (Khushraj Rathod) #4
    • 03ba270 Fix incorrect method to specify CWD to cargo (Khushraj Rathod) #4
    • e87bd15 Fix missing trailing Cargo.toml, incorrect binary name (Khushraj Rathod) #4
    • 4788274 Replace unwraps in tests with expects (Khushraj Rathod) #4
    • 6ec8d79 Add shebang in test script (Khushraj Rathod) #4
    • cb4da7e Pipe output of test_prep script, better debug info (Khushraj Rathod) #4
    • a35ec03 Fix missing git config bug, better debug info (Khushraj Rathod) #4
    • 304fe04 Temporarily remove tests to cache builds (Khushraj Rathod) #4
    • eebe6d7 Re-add tests in CI (Khushraj Rathod) #4
    • b977068 Fix git config commands to config for correct repo (Khushraj Rathod) #4
    • 34c711c Fix caching by using cargo commands directly (Khushraj Rathod) #4
    • e5157aa Fix paths for cache and release (Khushraj Rathod) #4
    • f207b3c Fix uploaded binary name (Khushraj Rathod) #4
    • c28b0a9 Fix mv command (Khushraj Rathod) #4
    • f6846b9 Better assert for test (Khushraj Rathod) #4
    • c7fa937 Keep payload instead of turning to string (Khushraj Rathod) #4
    • 71eb08b Better lifetime for validation result (Khushraj Rathod) #4
    • 554bcf1 Split warp logic into modular filters to enable testing (Khushraj Rathod) #4
    • aaeb2e1 Refactor http handler tests to use warp::test without server overhead (Khushraj Rathod) #4
    • e223e3e Remove unnecessary lifetimes (Khushraj Rathod) #4
    • a596c16 Use vec and byte slice instead of String and &str (Khushraj Rathod) #4
    • 248f358 Fix test, generate key-pair (expensive) before serializing payload (Khushraj Rathod) #4
    • da9f5c2 Use modules instead of packages, don't self-implement logger (Khushraj Rathod) #4
    • 42a3a29 Improve module directory structure (Khushraj Rathod) #4
    • cfc3b17 Fix git updater test script dir (Khushraj Rathod) #4
    • 2683c71 Don't handle built in warp errors (Khushraj Rathod) #4
    • 0f5c1e4 Test 0.0.0.0:8090 on replit (Khushraj Rathod) #5
    • 8c4ea19 Remove unnecessary dependencies (Khushraj Rathod) #4
    • c86786f Add a "repl.deploy is running" message to handle get requests (Khushraj Rathod) #4
    • ca28d8b Add trailing var arg to allow passing flags to subcommand (Khushraj Rathod) #4
    • 32f4e71 Debug before writing to subprocess stdin (Khushraj Rathod) #8
    • c1bb6ae Add additional debug calls (Khushraj Rathod) #8
    • f4c6327 Fix clippy errors (Khushraj Rathod) #8
    • 83fb3f5 More logging (Khushraj Rathod) #8
    • 1f3cfbc Flush writer after writing, add debug config (Khushraj Rathod) #8
    • 9a6948f Restructure code, add test, fix missing newline bug (Khushraj Rathod) #8
    • b973749 Potentially fix failing test (Khushraj Rathod) #8
    • d618538 Use fs::canonicalize for relative paths (Khushraj Rathod) #8
    • 7a61396 Don't modify CWD in git_updater.rs (Khushraj Rathod) #8
    • Fix stdin write failing bug #8 (Khushraj Rathod)
    • a0f846c Remove old go code (Khushraj Rathod) #4
    • 6e505fb Move rust code to correct directory (Khushraj Rathod) #4
    • e6c72fc Add local change overwrite warning, reformat README (Khushraj Rathod) #4
    • e77d610 Add workflow to publish release on tags (Khushraj Rathod)
    Source code(tar.gz)
    Source code(zip)
    repl.deploy(8.54 MB)
  • 0.5.0(Mar 19, 2021)

  • 0.4.0(Mar 19, 2021)

  • 0.3.4(Mar 17, 2021)

  • 0.3.3(Mar 17, 2021)

  • 0.3.2(Mar 17, 2021)

  • 0.3.1(Mar 17, 2021)

  • 0.3.0(Mar 17, 2021)

  • 0.2.0(Mar 17, 2021)

  • 0.1.0(Mar 16, 2021)

    Changelog

    1d192ed Add FAQ and table of contents b09efea Add README 1ddc3a6 Add instructions for repls containing HTTP servers d74e128 Add json marshal types for validation error 2d034fc Add logo 32f9423 Add privacy policy (mandated by the GitHub marketplace) 9530fdc Add program status messages in server bd3b43b Add release helper 96c14c2 Add stdio handler as alternative to server e45eece Extract constants for stdio 7066cee Fix incorrect usage of log.Fatalln 58057b4 Fix typo 5d99938 Move serverless function outside dir 95e76cd Reformat files 0c43be8 Remove broken lint badge 5710030 Rename release workflow 80a8530 Split main constants, add support for stdio

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(104 bytes)
    repl.deploy_0.1.0_Linux_x86_64.tar.gz(1.98 MB)
  • 0.0.1(Mar 15, 2021)

    Changelog

    9c7ae83 Add OK handler for successful server commands, reformat code 4ea3ba0 Add daemon b627456 Add git update code 39cece3 Add goreleaser 40ccc19 Extract strings, extract functions d932d24 Fix slice bug, connect IO 12d26dc Initial commit; Signature verification is working 59656ad Merge server repo a38222b Move code into daemon directory 2f7506c Remove sample replit-deploy.json ca3e929 Separate signature and server into different packages

    Source code(tar.gz)
    Source code(zip)
    checksums.txt(104 bytes)
    repl.deploy_0.0.1_Linux_x86_64.tar.gz(1.97 MB)
Owner
Khushraj Rathod
15 y.o. programmer and designer. Member of @hackclub :)
Khushraj Rathod
Tools for managing GitHub block lists

GitHub block list management Octocrabby is a small set of command-line tools and Octocrab extensions that are focused on managing block lists on GitHu

Travis Brown 97 Nov 3, 2022
Sorting-in-rust-jadyn-nicholas created by GitHub Classroom

Sorting in Rust Overview Traits Running the code and the tests To Do Overview This lab uses various sorting algorithms as examples several features of

null 0 Mar 24, 2022
disemvowel-in-rust-bante created by GitHub Classroom

Rust Disemvowel This is a simple lab where we'll use Rust to implement the disemvowel function that we covered in a previous C lab. What is Rust? Rust

null 0 Dec 7, 2021
The second Rust implementation on GitHub of third-party REST API client for Bilibili.

Bilibili REST API The second Rust implementation on GitHub of third-party REST API client for Bilibili. Designed to be lightweight and efficient. It's

null 4 Aug 25, 2022
learn_rust_rustlings-qinyuhang created by GitHub Classroom

rustlings ?? ❤️ Greetings and welcome to rustlings. This project contains small exercises to get you used to reading and writing Rust code. This inclu

The Learning&Training Hub of OS Kernel 2 Oct 22, 2022
example codes for CIS198 https://cis198-2016s.github.io/

CIS198: RUST 编程语言 学习背景 rust 和 c/c++/Java/Python/golang 不太一样 rust 学习曲线比较陡峭 rust 有很多颠覆认知的特性: 所有权,生命周期,借用检测 cargo 工具 函数式+命令式支持 视频讲解见 B站 课程大纲 Timeline Lec

Jinghui Hu 3 Apr 9, 2024
A fast uuid generator in Python using Rust

ruuid A fast UUID generator for Python built using Rust. Its a simple wrapper on top of Rust's UUID crate. How to use? Installation: pip3 install ruui

Rahul Nair 19 Jul 13, 2022
fast rust implementation of online nonnegative matrix factorization as laid out in the paper "detect and track latent factors with online nonnegative matrix factorization"

ONMF status: early work in progress. still figuring this out. code still somewhat messy. api still in flux. fast rust implementation of online nonnega

null 2 Apr 10, 2020
a super fast scientific calculator with dimensional analysis support written in Rust 🦀

larvae a super fast scientific calculator with dimensional analysis support written in Rust ?? ?? heavily inspired from insect Usage: Command mode: $

John McAvoy 2 Jan 10, 2022
A fast lean and clean modern constraint programming solver implementation (in rust)

MaxiCP-rs This project aims at implementing a fast, and clean constraint programming solver with a focus on correctness, simplicity, maintainability a

Xavier Gillard 5 Dec 10, 2022
Fast and simple datetime, date, time and duration parsing for rust.

speedate Fast and simple datetime, date, time and duration parsing for rust. speedate is a lax† RFC 3339 date and time parser, in other words, it pars

Samuel Colvin 43 Nov 25, 2022
A fast, iterative, correct approach to Stackblur, resulting in a very smooth and high-quality output, with no edge bleeding

A fast, iterative, correct approach to Stackblur, resulting in a very smooth and high-quality output, with no edge bleeding. This crate implements a t

LoganDark 8 Nov 22, 2022
Macro for fast implementing serialize methods in serde::Serializer trait

impl_serialize! This library provides a simple procedural macro for fast implementing serialize methods in serde::Serializer trait. [dependencies] imp

Eduard Baturin 2 Sep 6, 2022
Now, the Host is Mine! - Super Fast Sub-domain Takeover Detection!

NtH1M - Super Fast Sub-domain Takeover Detection Notice This is a sad notice that our Internet Hero (@TheBinitGhimire) had recent demise on 26th of Ju

Captain Nick Lucifer* 5 Nov 5, 2022
Simple and fast proxy checker that include protocol validation;

Open Proxies ⭐️ Leave me a start please ⭐️ it will motivate me to continue maintaining and adding futures About | Technologies | Requirements | Starti

kmoz000 3 Nov 29, 2022
A backend framework for building fast and flexible APIs rapidly.

Andromeda Andromeda is a backend framework for Rust, to simplify the development of the kinds of basic API services that we developers have to build s

Framesurge 7 Dec 28, 2022
A minimal and fast zero-copy parser for the PE32+ file format.

peview A minimal and fast zero-copy parser for the PE32+ file format. Goal This project aims to offer a more light weight and easier to use alternativ

null 5 Dec 20, 2022
A fast and flexible LRU map.

A fast and flexible LRU map This repository contains a fast and flexible LRU map. Blazingly fast. Up to twice as fast as the lru crate, and with less

Koute 67 Jan 1, 2023
Thread-safe clone-on-write container for fast concurrent writing and reading.

sync_cow Thread-safe clone-on-write container for fast concurrent writing and reading. SyncCow is a container for concurrent writing and reading of da

null 40 Jan 16, 2023