This Gist is similar to https://gist.github.com/noteed/8656989 which uses Open vSwitch instead of Tinc.
Download the install.sh script and run it:
> https://gist.githubusercontent.com/noteed/11031504/raw/install.sh
| go test -run=. -bench=. -benchtime=5s -count 5 -benchmem -cpuprofile=cpu.out -memprofile=mem.out -trace=trace.out ./package | tee bench.txt | |
| go tool pprof -http :8080 cpu.out | |
| go tool pprof -http :8081 mem.out | |
| go tool trace trace.out | |
| go tool pprof $FILENAME.test cpu.out | |
| # (pprof) list <func name> | |
| # go get -u golang.org/x/perf/cmd/benchstat | |
| benchstat bench.txt |
| require 'openssl' | |
| require 'base64' | |
| # ===== \/ sign ===== | |
| # generate keys | |
| key = OpenSSL::PKey::EC.new("secp256k1") | |
| key.generate_key | |
| public_key = key.public_key | |
| public_key_hex = public_key.to_bn.to_s(16).downcase # public key in hex format |
| var webpack = require('webpack'); | |
| var HtmlWebpackPlugin = require('html-webpack-plugin'); | |
| var path = require('path'); | |
| var folders = { | |
| APP: path.resolve(__dirname, '../app'), | |
| BUILD: path.resolve(__dirname, '../build'), | |
| BOWER: path.resolve(__dirname, '../bower_components'), | |
| NPM: path.resolve(__dirname, '../node_modules') | |
| }; |
| object Main extends App { | |
| val thriftService = new FooService.FinagledService(new FooServiceImpl, new TBinaryProtocol.Factory()) | |
| val httpService = new Service[HttpRequest, HttpResponse] { | |
| def apply(req: HttpRequest): Future[HttpResponse] = { | |
| val content = ChannelBuffers.wrappedBuffer(req.getContent) | |
| val thriftFuture = thriftService.apply(content.array()) | |
| thriftFuture flatMap { res => | |
| val response = new DefaultHttpResponse(req.getProtocolVersion, HttpResponseStatus.OK) |
| package proxy | |
| import ( | |
| "io" | |
| "log" | |
| "net" | |
| ) | |
| func Proxy(srvConn, cliConn *net.TCPConn) { | |
| // channels to wait on the close event for each connection |
| #!/bin/sh | |
| # | |
| # The MIT License | |
| # | |
| # Copyright 2014-2017 Jakub Jirutka <[email protected]>. | |
| # | |
| # Permission is hereby granted, free of charge, to any person obtaining a copy | |
| # of this software and associated documentation files (the "Software"), to deal | |
| # in the Software without restriction, including without limitation the rights | |
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
This Gist is similar to https://gist.github.com/noteed/8656989 which uses Open vSwitch instead of Tinc.
Download the install.sh script and run it:
> https://gist.githubusercontent.com/noteed/11031504/raw/install.sh
Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at http://localhost:8000. Use this power wisely.
$ python -m SimpleHTTPServer 8000| package main | |
| import ( | |
| "bytes" | |
| "encoding/hex" | |
| "flag" | |
| "fmt" | |
| "io" | |
| "log" | |
| "net" |