A Standalone MPQUIC implementation in pure Go

Overview

A Standalone MPQUIC implementation in pure Go

Inspired and based on: https://multipath-quic.org/2017/12/09/artifacts-available.html

mpquic_actor_critic_v1 is a multipath implementation of the quic-go protocol

Roadmap

  • Implement different Machine Learning based Schedulers
  • DONE: Make this completely standalone, so that anyone can import this library without manual

This version of mpquic_actor_critic_v1 is not dependent on quic-go, and can be installed as a standalone package

Pre-Requisites

  • Install hdf5 library in your PC before executing this

    In mac: brew install hdf5

    In Ubuntu: sudo apt-get install libhdf5-serial-dev

  • Run export GOPRIVATE=github.com/shravan9912 in command-line before importing private-packages

  • Then go get -t -u ./...

Guides

We currently support Go 1.14+

Essential Environment Variables: OUTPUT_DIR="ABSOLUTE_PATH_TO_OUTPUT_DIR is needed for scheduler implementation in native application

Choosing Schedulers:

// Available Schedulers: round_robin, low_latency
// Default Scheduler: round_robin
// To choose a custom scheduler you can follow the below approach:
cfgServer := &quic.Config{
	CreatePaths: true,
	Scheduler: 'round_robin', // Or any of the above mentioned scheduler
	WeightsFile: '/file/path'
	Training: true,
	Epsilon: 0.0001
	AllowedCongestion: 50
	DumpExperiences: true
}  // If nothing is mentioned round_robin will be default

Installing and updating dependencies:

go get -t -u ./...

Running tests:

go test ./...

Example Implementation

An application that does File Transfer using mpquic_actor_critic_v1 has been shown at MPQUIC-FTP

In case of any issue accessing it, please reach out to repository owner

Contributing

We are always happy to welcome new contributors! We have a number of self-contained issues that are suitable for first-time contributors, they are tagged with want-help. If you have any questions, please feel free to reach out by opening an issue or leaving a comment.

Acknowledgment

  • Thanks to Qdeconinck for starting this amazing work
listmonk is a standalone, self-hosted, newsletter and mailing list manager

listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a Postg

Super-Smile 7 Oct 21, 2021
Sample Go REST API implementation with DDD using Clean Architecture.

This layer is a part developed for client-side (mobile, web, etc.) applications to access our domain. It will forward the requests from this layer to the application layer and expose the response it receives from the application layer.

Rıdvan 12 Nov 16, 2021
A barebones URL Shortener implementation in Go using Gin and MySQL. Also features a basic frontend.

URL Shortener in Go This is a barebones URL Shortener implementation in Go using the Gin web framework and MySQL. Also features a basic frontend. Loca

Shreyas Gupta 3 Oct 21, 2021
A GO implementation of the Gathering Harcore programming competition 2011

CloudWars CloudWars is a GO implementation of the Gathering Harcore programming competition 2011 . This implementation offers more configuration optio

Schnorcher Sepp 1 Nov 20, 2021
GRPC Basic Implementation For Golang

GRPC Basic Implementation What is Remote Procedure Call In your CLIENT code, It looks like you're just calling a function directly on SERVER For examp

William Andres Rodriguez Borja 0 Nov 23, 2021
Official golang implementation of the Klaytn protocol

Klaytn Official golang implementation of the Klaytn protocol. Please visit KlaytnDocs for more details on Klaytn design, node operation guides and app

Caeret 0 Nov 24, 2021
Blog backend based on go implementation

个人博客后端文档 简介 相关功能 v0.1 用户登录、注册 文章发布、查看、评论、点赞 粉丝相关(关注) v0.2 排行榜(文章发布数量、粉丝) v0.3 流量统计 技术栈 语言选用go 大致技术栈选用: kratos + redis + jwt + gorm 项目地址 todo 项目结构

Leslie Lau 0 Nov 27, 2021
Advent of Code 2021 example implementation

Advent of Code 2021 example implementation Structure assets/puzzles/<day>.txt contains the puzzle inputs. cmd/<day>/main.go contains the source code d

Lars Hick 1 Dec 2, 2021
Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly.

Gleam Gleam is a high performance and efficient distributed execution system, and also simple, generic, flexible and easy to customize. Gleam is built

Chris Lu 2.9k Dec 6, 2021
Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly.

Gleam Gleam is a high performance and efficient distributed execution system, and also simple, generic, flexible and easy to customize. Gleam is built

Chris Lu 2.9k Dec 6, 2021
A standalone, specification-compliant, OAuth2 server written in Golang.

Go OAuth2 Server This service implements OAuth 2.0 specification. Excerpts from the specification are included in this README file to describe differe

Richard Knop 1.8k Nov 28, 2021
Go library for writing standalone Map/Reduce jobs or for use with Hadoop's streaming protocol

dmrgo is a Go library for writing map/reduce jobs. It can be used with Hadoop's streaming protocol, but also includes a standalone map/reduce impleme

Damian Gryski 105 Nov 26, 2021
httpstream provides HTTP handlers for simultaneous streaming uploads and downloads of objects, as well as persistence and a standalone server.

httpfstream httpfstream provides HTTP handlers for simultaneous streaming uploads and downloads of files, as well as persistence and a standalone serv

Sourcegraph 16 May 1, 2021
Fast and secure standalone server for resizing and converting remote images

imgproxy imgproxy is a fast and secure standalone server for resizing and converting remote images. The main principles of imgproxy are simplicity, sp

imgproxy 5.6k Dec 3, 2021
Standalone client for proxies of Opera VPN

opera-proxy Standalone Opera VPN client. Younger brother of hola-proxy. Just run it and it'll start a plain HTTP proxy server forwarding traffic throu

null 233 Nov 22, 2021
MenuStart plugin to nwg-panel, also capable of working standalone

nwg-menu This code provides the MenuStart plugin to nwg-panel. It also may be used standalone, however, with a little help from command line arguments

Piotr Miller 24 Nov 7, 2021
Cogger is a standalone binary and a golang library that reads an internally tiled geotiff

Cogger is a standalone binary and a golang library that reads an internally tiled geotiff (optionally with overviews and masks) and rewrites it

Airbus DS GEO S.A. 37 Nov 15, 2021
`tfx` is a standalone CLI for Terraform Cloud and Terraform Enterprise.

TFx CLI tfx is a standalone CLI for Terraform Cloud and Terraform Enterprise. The initial focus of tfx is to execute the API-Driven workflow for a Wor

Tom Straub 33 Nov 19, 2021
Standalone client for proxies of Windscribe browser extension

windscribe-proxy Standalone Windscribe proxy client. Younger brother of opera-proxy. Just run it and it'll start a plain HTTP proxy server forwarding

null 24 Nov 26, 2021
Go Micro is a standalone framework for distributed systems development

Go Micro Go Micro is a framework for distributed systems development. Overview Go Micro provides the core requirements for distributed systems develop

Asim Aslam 17.3k Dec 3, 2021
DataHen Till is a standalone tool that instantly makes your existing web scraper scalable, maintainable, and more unblockable, with minimal code changes on your scraper.

DataHen Till is a standalone tool that instantly makes your existing web scraper scalable, maintainable, and more unblockable, with minimal code changes on your scraper.

DataHenHQ 769 Nov 26, 2021
listmonk is a standalone high performance, self-hosted newsletter and mailing list manager with a modern dashboard. Single binary app.

listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a PostgreSQL database as its data store.

Kailash Nadh 7.2k Dec 4, 2021
listmonk is a standalone, self-hosted, newsletter and mailing list manager

listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a Postg

Super-Smile 7 Oct 21, 2021
A standalone ipfs gateway

rainbow Because ipfs should just work like unicorns and rainbows Building go build Running rainbow Configuration NAME: rainbow - a standalone ipf

IPFS 16 Nov 8, 2021
A standalone nREPL/prepl client written in Go and heavily inspired by Grenchman

Trenchman A standalone nREPL/prepl client written in Go, heavily inspired by Grenchman Trenchman is a standalone nREPL/prepl client, which means that

Shogo Ohta 47 Oct 18, 2021
Implementing SPEEDEX price computation engine in Golang as a standalone binary that exchanges can call

speedex-standalone Implementing SPEEDEX price computation engine in Golang as a standalone binary that exchanges can call. Notes from Geoff About Tato

Samuel Wong 1 Dec 1, 2021
A standalone Web Server developed with the standard http library, suport reverse proxy & flexible configuration

paddy 简介 paddy是一款单进程的独立运行的web server,基于golang的标准库net/http实现。 paddy提供以下功能: 直接配置http响应 目录文件服务器 proxy_pass代理 http反向代理 支持请求和响应插件 部署 编译 $ go build ./main/p

fangyousong 2 Dec 2, 2021
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 1 Dec 4, 2021
Pure Go termbox implementation

IMPORTANT This library is somewhat not maintained anymore. But I'm glad that it did what I wanted the most. It moved people away from "ncurses" mindse

null 4.2k Nov 27, 2021