Self-hostable , easy-to-use , lightweight and feature-rich torrent client written in Go

Overview

exatorrent

self-hostable torrent client


ScreenshotsReleasesFeatures Installation UsageDocker Build License


Introduction

exatorrent is BitTorrent Client written in Go. It can be run locally or be hosted in Remote Server with good resources to use that Server as SeedBox. It is Single Completely Statically Linked Binary with Zero External Dependencies .

exatorrent is simple yet feature-rich . It is lightweight and light on resources. It comes with Beautiful Responsive Web Client written in Svelte and Typescript , but thanks to documented WebSocket API of exatorrent , you can also write your own client if you want to.

exatorrent can operate in Optional Multi-User Mode administrated by admin user/s but it can successfully be used by Single-User as well. Torrented Files are stored in local disk of device where it's run, which are then retrievable or streamable via HTTP.


exatorrent web client

More Screenshots →


Installation

exatorrent can be installed in 3 ways.

  • Releases: You can download binary for your OS from Releases . Mark it as executable and run it . Refer Usage .
    wget https://github.com/varbhat/exatorrent/releases/download/latest/exatorrent-linux-amd64
    chmod u+x ./exatorrent-linux-amd64
    ./exatorrent-linux-amd64
  • Docker: exatorrent can also be run inside Docker ( or Podman ). See Docker Docs .
    docker pull ghcr.io/varbhat/exatorrent:latest
    docker run -p 5000:5000 -p 42069:42069 -v /path/to/directory:/exa/exadir ghcr.io/varbhat/exatorrent:latest
  • Build: exatorrent is open source and can be built from sources . See Build Docs .
    make web && make app

Note that Username and Password of Default User created on first run are adminuser and adminpassword respectively. You can change Password later but Username of Account can't be changed after creation. Refer Usage .

Github Actions is used to build and publish Releases and Docker/Podman Images of exatorrent .

If you want to deploy exatorrent on server , please also refer Deploy Docs .

Features

  • Single Executable File with No Dependencies
  • Small in Size
  • Cross Platform
  • Download (or Build ) Single Executable Binary and run . That's it
  • Open and Stream Torrents in your Browser
  • Add Torrents by Magnet or by Infohash or Torrent File
  • Individual File Control (Start, Stop or Delete )
  • Stop , Remove or Delete Torrent
  • Persistent between Sessions
  • Stop Torrent once SeedRatio is reached (Optional)
  • Powered by anacrolix/torrent
  • Download/Upload Rate limiter (Optional)
  • Apply Blocklist (Optional)
  • Configurable via Config File but works fine with Zero Configuration
  • Share Files by Unlocking Torrent or Lock Torrent (protect by Auth) to prevent External Access
  • Retrieve or Stream Files via HTTP
  • Multi-Users with Authentication
  • Auto Add Trackers to Torrent from TrackerList URL
  • Auto Fetch Torrent Metainfo from Online/Local Metainfo Cache
  • Download Directory as Zip or as Tarball
  • Stream directly on Browser or VLC or mpv or other Media Players
  • Documented API
  • Uses Sqlite3 (embedded database with no setup and no configuration) by Default for Database but PostgreSQL can be used instead too

Read More →

Help

Communication about the project is primarily through Discussions and the Issues.

Contribute

You are welcome to contribute . Please Read the contributing docs first.

Sponsor

If you like this Project , please consider this as an opportunity to sponsor / donate to this project . This would help me maintain this project and also work on other Open Source Projects . Use Liberapay , Paypal , Ko-fi or UPI (VPA: [email protected]) to Sponsor / Donate to this Project .

License

GPL-v3

Comments
  • Generate random password instead of using insecure defaults

    Generate random password instead of using insecure defaults

    Note that Username and Password of Default User created on first run are adminuser and adminpassword respectively. You can change Password later but Username of Account can't be changed after creation. Refer Usage.

    The password really shouldn't be hardcoded.

    opened by OmgImAlexis 13
  • After adding a magnet link to the docker version, the system hangs

    After adding a magnet link to the docker version, the system hangs

    docker-compose.yaml

    version: '3.1'
    
    services:
      torrent:
        image: ghcr.io/varbhat/exatorrent:latest
        restart: always
        volumes:
          - ${HOME}/Downloads:/exa/exadir
        ports:
          - 5000:5000
          - 42069:42069
    
    docker-compose up -d
    

    operation:

    1. add a new admin user
    2. logout and login new user and disabled adminuser
    3. add magnet link

    magnet link:

    magnet:?xt=urn:btih:787b951c9635c58928260e02a01e2b5434d8bb13&tr=http://tracker.36dm.com:2710/announce
    

    system info:

                       -`                    [email protected] 
                      .o+`                   ---------------- 
                     `ooo/                   OS: Arch Linux x86_64 
                    `+oooo:                  Host: XPS 13 7390 
                   `+oooooo:                 Kernel: 5.13.12-arch1-1 
                   -+oooooo+:                Uptime: 7 days, 4 hours, 18 mins 
                 `/:-:++oooo+:               Packages: 1627 (pacman) 
                `/++++/+++++++:              Shell: zsh 5.8 
               `/++++++++++++++:             Resolution: 1920x1080 
              `/+++ooooooooooooo/`           DE: Plasma 5.22.4 
             ./ooosssso++osssssso+`          WM: KWin 
            .oossssso-````/ossssss+`         WM Theme: Breeze 
           -osssssso.      :ssssssso.        Theme: Breeze Dark [Plasma], Breeze [GTK2/3] 
          :osssssss/        osssso+++.       Icons: breeze-dark [Plasma], breeze-dark [GTK2/3] 
         /ossssssss/        +ssssooo/-       Terminal: terminator 
       `/ossssso+/:-        -:/+osssso+-     CPU: Intel i7-10710U (12) @ 4.700GHz 
      `+sso+:-`                 `.-/+oso:    GPU: Intel Comet Lake UHD Graphics 
     `++:.                           `-/+/   Memory: 7627MiB / 15695MiB 
     .`                                 `/
    
     [email protected] ~/Downloads  id
    uid=1000(ystyle) gid=1000(ystyle) groups=1000(ystyle),972(docker),998(wheel)
    

    cpu: 200%(total 600%) Memory: 100% (16g ram and 20G swap)

    opened by ystyle 9
  • [Feature] Add support for moving torrents to a different directory when completed

    [Feature] Add support for moving torrents to a different directory when completed

    It would be useful to be able to have torrents moved to a directory when they have finished downloading. For example, when added, torrents are saved to the directory "incomplete" and when finished they are moved to the directory "complete". It would probably also be prudent to check if a torrent exists in the complete folder when adding in case it has already been downloaded.

    opened by Chaz6 9
  • Makefile change to allow building on macOS

    Makefile change to allow building on macOS

    When using the Linux build options the build fail with

    /usr/local/go/pkg/tool/darwin_amd64/link: running clang++ failed: exit status 1
    ld: library not found for -lcrt0.o
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    
    make: *** [app] Error 2
    
    opened by bsergean 8
  • Why are .torrent file uploads limited to 20 MB?

    Why are .torrent file uploads limited to 20 MB?

    Is there a technical reason, or is 20 MB just a reasonable (but arbitrary) upper limit for file size? Is it possible for me to remove the 20 MB limit for my instance?

    I have a 47 MB .torrent.

    opened by Jafner 7
  •  username or password size too small

    username or password size too small

    I'm getting the following error: Unable to add admin user to adminless exatorrent instance : username or password size too small

    but the username length is 7 chars and the password lenght is >15 chars

    opened by kusky3 7
  • [WIP] Show free space in GB, add gitignore and add windows build option

    [WIP] Show free space in GB, add gitignore and add windows build option

    First of all, awesome project!

    The windows build goes through fine (it assumes a cross platform build using mingw on linux) but for some reason the UI doesn't show up? It's probably due to the nature of static file handling done by the app, need to look more closely.

    The showing free space in GB is just a UX thing for me, I intend to use this (once it's mature enough) on my seed box and that is something that's just convenient.

    opened by hayzamjs 7
  • MIME type issue on startup of pre-built executable (0.1.2)

    MIME type issue on startup of pre-built executable (0.1.2)

    On Windows. Running exatorrent amd64 and browsing to localhost:5000 or 127.0.0.1:5000 leads to a blank page with the dev tools console error of

    Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/plain". Strict MIME type checking is enforced for module scripts per HTML spec.
    

    The issue is in all modern browsers. The response header of index.js is Content-Type: text/plain; charset=utf-8. Manually setting :5000 or 127.0.01:5000 with -addr did not help.

    opened by drewbitt 6
  • arm5l any chance build?

    arm5l any chance build?

    GOOS=linux GOARCH=arm GOARM=5

    C:\Users\X\go\pkg\mod\github.com\anacrolix\[email protected]\status.go:9:2: undefined: mu
    C:\Users\X\go\pkg\mod\github.com\anacrolix\[email protected]\status.go:10:8: undefined: mu
    C:\Users\X\go\pkg\mod\github.com\anacrolix\[email protected]\status.go:11:20: undefined: libContextToSocket
    # crawshaw.io/sqlite/sqlitex
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\buffer.go:38:8: undefined: sqlite.Conn
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\buffer.go:51:9: undefined: sqlite.Blob
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\buffer.go:56:22: undefined: sqlite.Conn
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\buffer.go:61:26: undefined: sqlite.Conn
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\exec.go:73:17: undefined: sqlite.Conn
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\exec.go:73:64: undefined: sqlite.Stmt
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\exec.go:91:26: undefined: sqlite.Conn
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\exec.go:91:73: undefined: sqlite.Stmt
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\exec.go:110:17: undefined: sqlite.Stmt
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\exec.go:176:23: undefined: sqlite.Conn
    C:\Users\X\go\pkg\mod\crawshaw.io\[email protected]\sqlitex\exec.go:176:23: too many errors
    
    opened by luckydevil13 6
  • Running `./exatorrent -engc -torc` keeps client running

    Running `./exatorrent -engc -torc` keeps client running

    I'd like to create all configs in the exadir, have exa quit, and then edit the config manually. Running the two flags together will keep the client running instead of it quitting after writing the confs.

    [email protected]:/tmp# /opt/exatorrent/exatorrent -engc -torc
    
    Address => :5000
    Directory => exadir
    
    [INFO] 2021/08/28 11:52:23 Torrent Client Configuration is now loaded from  exadir/config/clientconfig.json
    [INFO] 2021/08/28 11:52:23 Engine Configuration {DisableLocalCache:false OnlineCacheURL:https://itorrents.org/torrent/%s.torrent TrackerRefresh:60 TrackerListURLs:[https://ngosang.github.io/trackerslist/trackers_best.txt] DisAllowTrackersUser:false DisAllowTrackersCache:false GlobalSeedRatio:0 SRRefresh:150 DontRemoveCacheInfo:false LockbyDefault:false} is now loaded
    [INFO] 2021/08/28 11:52:23 Torrent Client Created
    [INFO] 2021/08/28 11:52:23 Starting server on :5000
    [INFO] 2021/08/28 11:52:23 Loaded  20  trackers from  https://ngosang.github.io/trackerslist/trackers_best.txt
    [INFO] 2021/08/28 11:52:23 Loaded  20  trackers in total , eliminating duplicates
    [INFO] 2021/08/28 11:52:23 Added Loaded Trackers to Torrents
    
    opened by flying-sausages 6
  • Failed to deploy

    Failed to deploy

    LOG -----> Building on the Heroku-20 stack -----> Determining which buildpack to use for this app -----> Go app detected -----> Fetching jq... done -----> Fetching stdlib.sh.v8... done -----> Detected go modules via go.mod -----> Detected Module Name: github.com/varbhat/exatorrent -----> !! The go.mod file for this project does not specify a Go version !!
    !! Defaulting to go1.12.17 !!
    !! For more details see: https://devcenter.heroku.com/articles/go-apps-with-modules#build-configuration !!
    -----> New Go Version, clearing old cache -----> Installing go1.12.17 -----> Fetching go1.12.17.linux-amd64.tar.gz... done -----> Determining packages to install

       Detected the following main packages to install:
       		github.com/varbhat/exatorrent
    

    -----> Running: go install -v -tags heroku github.com/varbhat/exatorrent build github.com/varbhat/exatorrent: cannot load crypto/ed25519: cannot find module providing package crypto/ed25519 ! Push rejected, failed to compile Go app. ! Push failed

    image

    opened by Wkela 5
  • Bump esbuild from 0.15.13 to 0.15.16 in /internal/web

    Bump esbuild from 0.15.13 to 0.15.16 in /internal/web

    Bumps esbuild from 0.15.13 to 0.15.16.

    Release notes

    Sourced from esbuild's releases.

    v0.15.16

    • Add a package alias feature (#2191)

      With this release, you can now easily substitute one package for another at build time with the new alias feature. For example, --alias:oldpkg=newpkg replaces all imports of oldpkg with newpkg. One use case for this is easily replacing a node-only package with a browser-friendly package in 3rd-party code that you don't control. These new substitutions happen first before all of esbuild's existing path resolution logic.

      Note that when an import path is substituted using an alias, the resulting import path is resolved in the working directory instead of in the directory containing the source file with the import path. If needed, the working directory can be set with the cd command when using the CLI or with the absWorkingDir setting when using the JS or Go APIs.

    • Fix crash when pretty-printing minified JSX with object spread of object literal with computed property (#2697)

      JSX elements are translated to JavaScript function calls and JSX element attributes are translated to properties on a JavaScript object literal. These properties are always either strings (e.g. in <x y />, y is a string) or an object spread (e.g. in <x {...y} />, y is an object spread) because JSX doesn't provide syntax for directly passing a computed property as a JSX attribute. However, esbuild's minifier has a rule that tries to inline object spread with an inline object literal in JavaScript. For example, x = { ...{ y } } is minified to x={y} when minification is enabled. This means that there is a way to generate a non-string non-spread JSX attribute in esbuild's internal representation. One example is with <x {...{ [y]: z }} />. When minification is enabled, esbuild's internal representation of this is something like <x [y]={z} /> due to object spread inlining, which is not valid JSX syntax. If this internal representation is then pretty-printed as JSX using --minify --jsx=preserve, esbuild previously crashed when trying to print this invalid syntax. With this release, esbuild will now print <x {...{[y]:z}}/> in this scenario instead of crashing.

    v0.15.15

    • Remove duplicate CSS rules across files (#2688)

      When two or more CSS rules are exactly the same (even if they are not adjacent), all but the last one can safely be removed:

      /* Before */
      a { color: red; }
      span { font-weight: bold; }
      a { color: red; }
      

      /* After */ span { font-weight: bold; } a { color: red; }

      Previously esbuild only did this transformation within a single source file. But with this release, esbuild will now do this transformation across source files, which may lead to smaller CSS output if the same rules are repeated across multiple CSS source files in the same bundle. This transformation is only enabled when minifying (specifically when syntax minification is enabled).

    • Add deno as a valid value for target (#2686)

      The target setting in esbuild allows you to enable or disable JavaScript syntax features for a given version of a set of target JavaScript VMs. Previously Deno was not one of the JavaScript VMs that esbuild supported with target, but it will now be supported starting from this release. For example, versions of Deno older than v1.2 don't support the new ||= operator, so adding e.g. --target=deno1.0 to esbuild now lets you tell esbuild to transpile ||= to older JavaScript.

    • Fix the esbuild-wasm package in Node v19 (#2683)

      A recent change to Node v19 added a non-writable crypto property to the global object: nodejs/node#44897. This conflicts with Go's WebAssembly shim code, which overwrites the global crypto property. As a result, all Go-based WebAssembly code that uses the built-in shim (including esbuild) is now broken on Node v19. This release of esbuild fixes the issue by reconfiguring the global crypto property to be writable before invoking Go's WebAssembly shim code.

    • Fix CSS dimension printing exponent confusion edge case (#2677)

      In CSS, a dimension token has a numeric "value" part and an identifier "unit" part. For example, the dimension token 32px has a value of 32 and a unit of px. The unit can be any valid CSS identifier. The value can be any number in floating-point format including an optional exponent (e.g. -3.14e-0 has an exponent of e-0). The full details of this syntax are here: https://www.w3.org/TR/css-syntax-3/.

      To maintain the integrity of the dimension token through the printing process, esbuild must handle the edge case where the unit looks like an exponent. One such case is the dimension 1e\32 which has the value 1 and the unit e2. It would be bad if this dimension token was printed such that a CSS parser would parse it as a number token with the value 1e2 instead of a dimension token. The way esbuild currently does this is to escape the leading e in the dimension unit, so esbuild would parse 1e\32 but print 1\65 2 (both 1e\32 and 1\65 2 represent a dimension token with a value of 1 and a unit of e2).

      However, there is an even narrower edge case regarding this edge case. If the value part of the dimension token itself has an e, then it's not necessary to escape the e in the dimension unit because a CSS parser won't confuse the unit with the exponent even though it looks like one (since a number can only have at most one exponent). This came up because the grammar for the CSS unicode-range property uses a hack that lets you specify a hexadecimal range without quotes even though CSS has no token for a hexadecimal range. The hack is to allow the hexadecimal range to be parsed as a dimension token and optionally also a number token. Here is the grammar for unicode-range:

      unicode-range =
        <urange>#
      

      <urange> =

    ... (truncated)

    Changelog

    Sourced from esbuild's changelog.

    0.15.16

    • Add a package alias feature (#2191)

      With this release, you can now easily substitute one package for another at build time with the new alias feature. For example, --alias:oldpkg=newpkg replaces all imports of oldpkg with newpkg. One use case for this is easily replacing a node-only package with a browser-friendly package in 3rd-party code that you don't control. These new substitutions happen first before all of esbuild's existing path resolution logic.

      Note that when an import path is substituted using an alias, the resulting import path is resolved in the working directory instead of in the directory containing the source file with the import path. If needed, the working directory can be set with the cd command when using the CLI or with the absWorkingDir setting when using the JS or Go APIs.

    • Fix crash when pretty-printing minified JSX with object spread of object literal with computed property (#2697)

      JSX elements are translated to JavaScript function calls and JSX element attributes are translated to properties on a JavaScript object literal. These properties are always either strings (e.g. in <x y />, y is a string) or an object spread (e.g. in <x {...y} />, y is an object spread) because JSX doesn't provide syntax for directly passing a computed property as a JSX attribute. However, esbuild's minifier has a rule that tries to inline object spread with an inline object literal in JavaScript. For example, x = { ...{ y } } is minified to x={y} when minification is enabled. This means that there is a way to generate a non-string non-spread JSX attribute in esbuild's internal representation. One example is with <x {...{ [y]: z }} />. When minification is enabled, esbuild's internal representation of this is something like <x [y]={z} /> due to object spread inlining, which is not valid JSX syntax. If this internal representation is then pretty-printed as JSX using --minify --jsx=preserve, esbuild previously crashed when trying to print this invalid syntax. With this release, esbuild will now print <x {...{[y]:z}}/> in this scenario instead of crashing.

    0.15.15

    • Remove duplicate CSS rules across files (#2688)

      When two or more CSS rules are exactly the same (even if they are not adjacent), all but the last one can safely be removed:

      /* Before */
      a { color: red; }
      span { font-weight: bold; }
      a { color: red; }
      

      /* After */ span { font-weight: bold; } a { color: red; }

      Previously esbuild only did this transformation within a single source file. But with this release, esbuild will now do this transformation across source files, which may lead to smaller CSS output if the same rules are repeated across multiple CSS source files in the same bundle. This transformation is only enabled when minifying (specifically when syntax minification is enabled).

    • Add deno as a valid value for target (#2686)

      The target setting in esbuild allows you to enable or disable JavaScript syntax features for a given version of a set of target JavaScript VMs. Previously Deno was not one of the JavaScript VMs that esbuild supported with target, but it will now be supported starting from this release. For example, versions of Deno older than v1.2 don't support the new ||= operator, so adding e.g. --target=deno1.0 to esbuild now lets you tell esbuild to transpile ||= to older JavaScript.

    • Fix the esbuild-wasm package in Node v19 (#2683)

      A recent change to Node v19 added a non-writable crypto property to the global object: nodejs/node#44897. This conflicts with Go's WebAssembly shim code, which overwrites the global crypto property. As a result, all Go-based WebAssembly code that uses the built-in shim (including esbuild) is now broken on Node v19. This release of esbuild fixes the issue by reconfiguring the global crypto property to be writable before invoking Go's WebAssembly shim code.

    • Fix CSS dimension printing exponent confusion edge case (#2677)

      In CSS, a dimension token has a numeric "value" part and an identifier "unit" part. For example, the dimension token 32px has a value of 32 and a unit of px. The unit can be any valid CSS identifier. The value can be any number in floating-point format including an optional exponent (e.g. -3.14e-0 has an exponent of e-0). The full details of this syntax are here: https://www.w3.org/TR/css-syntax-3/.

      To maintain the integrity of the dimension token through the printing process, esbuild must handle the edge case where the unit looks like an exponent. One such case is the dimension 1e\32 which has the value 1 and the unit e2. It would be bad if this dimension token was printed such that a CSS parser would parse it as a number token with the value 1e2 instead of a dimension token. The way esbuild currently does this is to escape the leading e in the dimension unit, so esbuild would parse 1e\32 but print 1\65 2 (both 1e\32 and 1\65 2 represent a dimension token with a value of 1 and a unit of e2).

      However, there is an even narrower edge case regarding this edge case. If the value part of the dimension token itself has an e, then it's not necessary to escape the e in the dimension unit because a CSS parser won't confuse the unit with the exponent even though it looks like one (since a number can only have at most one exponent). This came up because the grammar for the CSS unicode-range property uses a hack that lets you specify a hexadecimal range without quotes even though CSS has no token for a hexadecimal range. The hack is to allow the hexadecimal range to be parsed as a dimension token and optionally also a number token. Here is the grammar for unicode-range:

      unicode-range =
        <urange>#
      

    ... (truncated)

    Commits
    • 50ae05b publish 0.15.16 to npm
    • d8d7362 alias: more tests, allow relative substitutions
    • a7eb789 fix #2191: add a path alias feature
    • 4e9f9c1 fix indentation for some tests
    • 89e4520 fix #2697: jsx + spread + computed property crash
    • ef348a3 jsx: pretty-print single-line JSX elements
    • 478062d publish 0.15.15 to npm
    • e7ad5fb remove duplicate css rules across files (#2688)
    • 6664172 test duplicate rule merging after bundling
    • a73c4e9 css: merge adjacent selectors forward not backward
    • 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 javascript 
    opened by dependabot[bot] 0
  • Bump golang.org/x/crypto from 0.1.0 to 0.3.0

    Bump golang.org/x/crypto from 0.1.0 to 0.3.0

    Bumps golang.org/x/crypto from 0.1.0 to 0.3.0.

    Commits
    • 0ec7e83 internal/wycheproof: update Go 1.20 crypto/ecdh API
    • 6fad3df ssh: support rsa-sha2-256/512 on the server side
    • 21d60a1 all: remove redundant type conversion
    • 183a9b7 go.mod: update golang.org/x dependencies
    • 334521b ssh: fix typo
    • a3485e1 all: use math/bits.RotateLeft
    • 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 go 
    opened by dependabot[bot] 0
  • Bump esbuild-svelte from 0.7.1 to 0.7.3 in /internal/web

    Bump esbuild-svelte from 0.7.1 to 0.7.3 in /internal/web

    Bumps esbuild-svelte from 0.7.1 to 0.7.3.

    Release notes

    Sourced from esbuild-svelte's releases.

    v0.7.3

    • Switch from .npmignore to files property of package.json to prevent accidental file inclusion

    v0.7.2

    • Support string values for Svelte compiler option css added in Svelte v3.53.0 (#109, #150)
    • Update misc dependencies
    Changelog

    Sourced from esbuild-svelte's changelog.

    0.7.3

    • Switch from .npmignore to files property of package.json to prevent accidental file inclusion

    0.7.2

    • Support string values for Svelte compiler option css added in Svelte v3.53.0 (#109, #150)
    • Update misc dependencies
    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
  • Bump tailwindcss from 3.2.2 to 3.2.4 in /internal/web

    Bump tailwindcss from 3.2.2 to 3.2.4 in /internal/web

    Bumps tailwindcss from 3.2.2 to 3.2.4.

    Release notes

    Sourced from tailwindcss's releases.

    v3.2.4

    Added

    • Add blocklist option to prevent generating unwanted CSS (#9812)

    Fixed

    • Fix watching of files on Linux when renames are involved (#9796)
    • Make sure errors are always displayed when watching for changes (#9810)

    v3.2.3

    Fixed

    • Fixed use of raw content in the CLI (#9773)
    • Pick up changes from files that are both context and content deps (#9787)
    • Sort pseudo-elements ONLY after classes when using variants and @apply (#9765)
    • Support important utilities in the safelist (pattern must include a !) (#9791)
    Changelog

    Sourced from tailwindcss's changelog.

    [3.2.4] - 2022-11-11

    Added

    • Add blocklist option to prevent generating unwanted CSS (#9812)

    Fixed

    • Fix watching of files on Linux when renames are involved (#9796)
    • Make sure errors are always displayed when watching for changes (#9810)

    [3.2.3] - 2022-11-09

    Fixed

    • Fixed use of raw content in the CLI (#9773)
    • Pick up changes from files that are both context and content deps (#9787)
    • Sort pseudo-elements ONLY after classes when using variants and @apply (#9765)
    • Support important utilities in the safelist (pattern must include a !) (#9791)
    Commits
    • f2f1ee9 3.2.4
    • 13eb1e2 update changelog
    • 22d45dd Update CHANGELOG.md
    • 602101d Allow users to block generation of certain utilities (#9812)
    • 4ccc0fa Make sure errors are always displayed when watching for changes (#9810)
    • 1482c75 Fix watching of files on Linux when renames are involved (#9796)
    • 757a8d6 update changelog
    • 6166e59 3.2.3
    • 8a2f9ed Fix !important selectors not being classified as valid class inside safelist ...
    • 6bd9912 Only sort pseudo elements after classes when using @apply and variants (#9765)
    • 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 javascript 
    opened by dependabot[bot] 0
  • Bump postcss from 8.4.18 to 8.4.19 in /internal/web

    Bump postcss from 8.4.18 to 8.4.19 in /internal/web

    Bumps postcss from 8.4.18 to 8.4.19.

    Release notes

    Sourced from postcss's releases.

    8.4.19

    • Fixed whitespace preserving after AST transformations (by @​romainmenke).
    Changelog

    Sourced from postcss's changelog.

    8.4.19

    • Fixed whitespace preserving after AST transformations (by Romain Menke).
    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
  • Bump svelte from 3.52.0 to 3.53.1 in /internal/web

    Bump svelte from 3.52.0 to 3.53.1 in /internal/web

    Bumps svelte from 3.52.0 to 3.53.1.

    Changelog

    Sourced from svelte's changelog.

    3.53.1

    • Fix exception in rel= attribute check with dynamic values (#7994)
    • Do not emit deprecation warnings for css compiler options for now (#8009)
    • Make compiler run in browser again (#8010)
    • Upgrade tslib (#8013)

    3.53.0

    • Check whether parentNode exists before removing child (#6037)
    • Upgrade various dependencies, notably css-tree to 2.2.1 (#7572, #7982)
    • Extend css compiler option with 'external' | 'injected' | 'none' settings and deprecate old true | false values (#7914)
    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
Releases(v0.1.2)
Owner
Var Bhat
Var Bhat
A C/S Tool to Download Torrent Remotely and Retrieve Files Back Over HTTP at Full Speed without ISP Torrent Limitation.

remote-torrent Download Torrent Remotely and Retrieve Files Over HTTP at Full Speed without ISP Torrent Limitation. This repository is an extension to

Bruce Wang 59 Sep 30, 2022
Torrent-metainfo-parser - Generates a .torrent meta info from a file

torrent-metainfo-parser generates a .torrent meta info from a file required argu

Asaad Belarbi 2 Aug 23, 2022
Activitypub-server - PubChannel - a libre, self-hostable, federated, imageboard platform that utilizes ActivityPub

About PubChannel is a libre, self-hostable, federated, imageboard platform that

Devyn 0 Jan 11, 2022
PinGo is a standalone and feature-rich tool for common IP-based reachability checking tasks. Ping or Trace and Observe in real-time the statistics.

pingo As a network champion from designing and implementing to troubleshooting large scale networks - I know that is usually not easy for administrato

Jerome Amon 3 Sep 26, 2022
A totally configurable terminal torrent client.

mtorrent A totally configurable terminal torrent client. Download go get github.com/nektro/mtorrent Releases https://github.com/nektro/mtorrent/relea

Meghan 70 Aug 17, 2022
torpar is TUI client for Torrent Paradise .

torpar is TUI client for Torrent Paradise . Torrent Paradise is Decentralized DHT Torrent Search Site

Var Bhat 205 Sep 9, 2022
Torrent client designed for seeding tens of thousands of torrents.

Gamayun This project is currently a prototype. It is not usable in any shape or form. One day, this will be an efficient BitTorrent client, handling l

Dominik Honnef 14 Jul 27, 2022
Gogrok is a self hosted, easy to use alternative to ngrok. It uses SSH as a base protocol, using channels and existing functionality to tunnel requests to an endpoint.

gogrok A simple, easy to use ngrok alternative (self hosted!) The server and client can also be easily embedded into your applications, see the 'serve

Tyler Stuyfzand 5 Jun 15, 2022
Splits heat 1 from the feature race to make it easy to upload multi-heat races to simracerhub as individual races

simracerhub_heat_splitter Splits heat 1 from the feature race to make it easy to upload multi-heat races to simracerhub as individual races Install Yo

Bjorn Stange 0 Jan 9, 2022
A golang library about socks5, supports all socks5 commands. That Provides server and client and easy to use. Compatible with socks4 and socks4a.

socks5 This is a Golang implementation of the Socks5 protocol library. To see in this SOCKS Protocol Version 5. This library is also compatible with S

chenhao zhang 40 Nov 22, 2022
Self-hosted and Easy-to-deploy Cloudflare based Dynamic DNS service for router

Self-hosted and Easy-to-deploy Cloudflare based Dynamic DNS service for router Contents Features Environment Variables Installation Heroku Docker (Run

Aseem Manna 5 Oct 9, 2022
Use Consul to do service discovery, use gRPC +kafka to do message produce and consume. Use redis to store result.

目录 gRPC/consul/kafka简介 gRPC+kafka的Demo gRPC+kafka整体示意图 限流器 基于redis计数器生成唯一ID kafka生产消费 kafka生产消费示意图 本文kafka生产消费过程 基于pprof的性能分析Demo 使用pprof统计CPU/HEAP数据的

null 43 Jul 9, 2022
tidal discord rich presence for windows

discordtidal Remember when Discord added a Spotify integration and all of your friends started having fun with it, but then being the weirdo you are,

Nick 17 Oct 28, 2022
A discord rich presence for MPD

mpdrp mpdrp is a Discord Rich Presence for the music application, MPD. It supports any platform that Discord supports, although I don't test on OSX, t

null 3 Sep 2, 2022
A simulation to see what's the result among normal people、rich-second generation、hard-working people

A simulation to see what's the result of competion among normal people、rich-second generation and hard-working people. 假设: 一个社会集体中有部分富二代,部分努力的人,多数是普通人

Myrainhua 0 Feb 20, 2022
A modular is an opinionated, easy-to-use P2P network stack for decentralized applications written in Go.

xlibp2p xlibp2p is an opinionated, easy-to-use P2P network stack for decentralized applications written in Go. xlibp2p is made to be minimal, robust,

XFS Network 62 Nov 9, 2022
High-performance, non-blocking, event-driven, easy-to-use networking framework written in Go, support tls/http1.x/websocket.

High-performance, non-blocking, event-driven, easy-to-use networking framework written in Go, support tls/http1.x/websocket.

lesismal 1k Nov 22, 2022
Xlibp2p: an opinionated, easy-to-use P2P network stack for decentralized applications written in Go

xlibp2p xlibp2p is an opinionated, easy-to-use P2P network stack for decentraliz

null 1 Nov 9, 2022
go-ip-fraud-check has a feature to detect fraud from ip addresss.

go-ip-fraud-check go-ip-fraud-check has a feature to detect fraud from ip addresss. go-ip-fraud-check provides both of cli binary and golang API. Supp

null 7 Oct 10, 2022