All Projects → dizda → Fast Socks5

dizda / Fast Socks5

Licence: mit
Fast SOCKS5 client/server implementation written in Rust async/.await (with async-std)

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Fast Socks5

Wufei
Async Kuberenetes Namespace Log Recorder / Streamer
Stars: ✭ 27 (-18.18%)
Mutual labels:  async
Request.swift
A tiny HTTP client written in swift. URLSession alternative
Stars: ✭ 14 (-57.58%)
Mutual labels:  async
React Hydrate
Generic data fetching, caching, and SSR hydration pattern for React
Stars: ✭ 27 (-18.18%)
Mutual labels:  async
Chili
Chili: HTTP Served Hot
Stars: ✭ 7 (-78.79%)
Mutual labels:  async
Saber
⚔️ Saber, PHP异步协程HTTP客户端 | PHP Coroutine HTTP client - Swoole Humanization Library
Stars: ✭ 866 (+2524.24%)
Mutual labels:  async
May
rust stackful coroutine library
Stars: ✭ 909 (+2654.55%)
Mutual labels:  async
Adapt
Advanced Developer Async Programming Toolkit
Stars: ✭ 26 (-21.21%)
Mutual labels:  async
Modern Async
A modern JavaScript tooling library for asynchronous operations using async/await and promises
Stars: ✭ 31 (-6.06%)
Mutual labels:  async
Shadowsocks Php
A php port of shadowsocks based on workerman. A socks5 proxy written in PHP.
Stars: ✭ 869 (+2533.33%)
Mutual labels:  socks5
Fastapi
FastAPI framework, high performance, easy to learn, fast to code, ready for production
Stars: ✭ 39,588 (+119863.64%)
Mutual labels:  async
Runtimepermission
Simpliest way to ask runtime permissions on Android, no need to extend class or override permissionResult method, choose your way : Kotlin / Coroutines / RxJava / Java7 / Java8
Stars: ✭ 860 (+2506.06%)
Mutual labels:  async
Gitter Api
[production-ready] Gitter API implementation for php 7.0+ allowing sync, async and streaming access.
Stars: ✭ 11 (-66.67%)
Mutual labels:  async
Iguazu Rest
✨ Iguazu REST is a plugin for the Iguazu ecosystem that allows for pre-built async calls for REST with smart caching.
Stars: ✭ 21 (-36.36%)
Mutual labels:  async
Mysqlconnector
Async MySQL Connector for .NET and .NET Core
Stars: ✭ 942 (+2754.55%)
Mutual labels:  async
Workcraft
Toolset to capture, simulate, synthesize and verify graph models
Stars: ✭ 27 (-18.18%)
Mutual labels:  async
Socksio
Sans-I/O implementation of SOCKS4, SOCKS4A, and SOCKS5
Stars: ✭ 27 (-18.18%)
Mutual labels:  socks5
Koahub Demo
koahub+async/await+mysql
Stars: ✭ 15 (-54.55%)
Mutual labels:  async
Restless
Express.js api, type safe validations and more
Stars: ✭ 32 (-3.03%)
Mutual labels:  async
Turbulette
😴 Turbulette - A batteries-included framework to build high performance, fully async GraphQL APIs
Stars: ✭ 29 (-12.12%)
Mutual labels:  async
Ktx
LibKTX: Kotlin extensions for LibGDX games and applications
Stars: ✭ 913 (+2666.67%)
Mutual labels:  async

SOCKS5 client/server library using async/.await

License crates.io dependency status Release

🚸 Currently it’s in heavy development and may frequently change.

Features

  • An async/.await SOCKS5 implementation.
  • No unsafe code
  • Built on-top of async-std library
  • Ultra lightweight and scalable
  • No system dependencies
  • Cross-platform
  • Authentication methods:
    • No-Auth method
    • Username/Password auth method
    • Custom auth methods can be implemented via the Authentication Trait
  • All SOCKS5 RFC errors (replies) should be mapped
  • AsyncRead + AsyncWrite traits are implemented on Socks5Stream & Socks5Socket
  • IPv4, IPv6, and Domains types are supported
  • Config helper for Socks5Server
  • Helpers to run a Socks5Server à la "async-std's TcpStream" via incoming.next().await
  • Examples come with real cases commands scenarios
  • Can disable DNS resolving
  • Can skip the authentication/handshake process, which will directly handle command's request (useful to save useless round-trips in an already authenticated environment)
  • Can disable command execution (useful if you just want to forward the request to an another server)

Install

Open in crates.io.

Examples

Please check examples directory.

# Run client
RUST_LOG=debug cargo run --example client -- --socks-server 127.0.0.1:1337 --username admin --password password -a perdu.com -p 80

# Run server
RUST_LOG=debug cargo run --example server -- --listen-addr 127.0.0.1:1337 password -u admin -p password

# Test it with cURL
curl -v --proxy socks5://admin:[email protected]:1337 https://ipapi.co/json/

TODO

  • Tests have to be implemented
  • Better Rust doc
  • Bind command not implemented
  • UDP command not implemented

Inspired by

Thanks to all these SOCKS5 projects

Further consideration

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].