Browse Source

Remove D/vibed (#4635)

Nate 6 years ago
parent
commit
956d1ef22c

+ 0 - 34
frameworks/D/vibed/README.md

@@ -1,34 +0,0 @@
-# Vibe.D Benchmarking Test
-
-This is the Vibe.D portion of a [benchmarking test suite](../) comparing a variety of web development platforms.
-
-### JSON Encoding Test
-
-* [JSON test controller/view](source/app.d)
-
-### Data-Store/Database Mapping Test
-
-* [DB test controller/model](source/app.d)
-
-## Infrastructure Software Versions
-The tests were run with:
-* [Vibe.D v0.8.0-beta.5](http://vibed.org/)
-
-## Test URLs
-### JSON Encoding Test
-
-http://localhost:8080/json
-
-### Plaintext Test
-
-http://localhost:8080/plaintext
-
-### Data-Store/Database Mapping Test
-
-MongoRaw:
-http://localhost:8080/db
-
-### Variable Query Test
-
-MongoDB Raw:
-http://localhost:8080/queries?queries=5

+ 0 - 97
frameworks/D/vibed/benchmark_config.json

@@ -1,97 +0,0 @@
-{
-  "framework": "vibed",
-  "tests": [{
-    "default": {
-      "json_url": "/json",
-      "db_url": "/db",
-      "query_url": "/queries?queries=",
-      "plaintext_url": "/plaintext",
-      "fortune_url": "/fortunes",
-      "update_url": "/updates?queries=",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Micro",
-      "database": "MongoDB",
-      "framework": "vibe.d",
-      "language": "D",
-      "flavor": "DLang2",
-      "orm": "Micro",
-      "platform": "None",
-      "webserver": "None",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "vibe.d",
-      "notes": "",
-      "versus": "vibed"
-    },
-    "dmd-pgsql": {
-      "json_url": "/json",
-      "db_url": "/db",
-      "query_url": "/queries?queries=",
-      "plaintext_url": "/plaintext",
-      "fortune_url": "/fortunes",
-      "update_url": "/updates?queries=",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Platform",
-      "database": "Postgres",
-      "framework": "vibed",
-      "language": "D",
-      "flavor": "DLang2",
-      "orm": "Raw",
-      "platform": "None",
-      "webserver": "None",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "vibe.d-pgsql",
-      "notes": "",
-      "versus": "vibed"
-    },
-    "ldc": {
-      "json_url": "/json",
-      "db_url": "/db",
-      "query_url": "/queries?queries=",
-      "plaintext_url": "/plaintext",
-      "fortune_url": "/fortunes",
-      "update_url": "/updates?queries=",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Platform",
-      "database": "MongoDB",
-      "framework": "vibed",
-      "language": "D",
-      "flavor": "DLang2",
-      "orm": "Micro",
-      "platform": "None",
-      "webserver": "None",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "vibe.d-ldc",
-      "notes": "",
-      "versus": "vibed"
-    },
-    "ldc-pgsql": {
-      "json_url": "/json",
-      "db_url": "/db",
-      "query_url": "/queries?queries=",
-      "plaintext_url": "/plaintext",
-      "fortune_url": "/fortunes",
-      "update_url": "/updates?queries=",
-      "port": 8080,
-      "approach": "Realistic",
-      "classification": "Platform",
-      "database": "Postgres",
-      "framework": "vibed",
-      "language": "D",
-      "flavor": "DLang2",
-      "orm": "Raw",
-      "platform": "None",
-      "webserver": "None",
-      "os": "Linux",
-      "database_os": "Linux",
-      "display_name": "vibe.d-ldc-pgsql",
-      "notes": "",
-      "versus": "vibed"
-    }
-  }]
-}

+ 0 - 37
frameworks/D/vibed/dub.json

@@ -1,37 +0,0 @@
-{
-  "name": "fwb",
-  "description": "A simple vibe.d server application.",
-  "copyright": "Copyright © 2015, jin",
-  "authors": [
-    "jin",
-    "Sönke Ludwig"
-  ],
-  "dependencies": {
-    "vibe-d": "0.8.2",
-    "vibe-core": "1.3.0",
-    "mir-random": "0.3.2",
-    "vibe-d:tls": "0.8.2"
-  },
-  "targetType": "executable",
-  "sourcePaths": [],
-  "subConfigurations": {
-    "vibe-d": "vibe-core",
-    "vibe-d:tls": "notls"
-  },
-  "versions": [
-    "VibeManualMemoryManagement"
-  ],
-  "configurations": [
-    {
-      "name": "mongodb",
-      "mainSourceFile": "source/mongodb.d"
-    },
-    {
-      "name": "postgresql",
-      "mainSourceFile": "source/postgresql.d",
-      "dependencies": {
-        "vibe-d-postgresql": "1.0.0-alpha.2"
-      }
-    }
-  ]
-}

+ 0 - 176
frameworks/D/vibed/source/mongodb.d

@@ -1,176 +0,0 @@
-import vibe.core.core;
-import vibe.db.mongo.mongo;
-import vibe.http.router;
-import vibe.http.server;
-import vibe.web.web;
-
-import mir.random : unpredictableSeedOf;
-import mir.random.variable : UniformVariable;
-import mir.random.engine.xorshift : Xorshift;
-
-import std.conv : ConvException, to;
-import std.array;
-
-enum worldSize = 10000;
-
-
-void main()
-{
-	runWorkerTaskDist(&runServer);
-	runApplication();
-}
-
-void runServer()
-{
-	auto router = new URLRouter;
-	router.registerWebInterface(new WebInterface);
-	router.rebuild();
-
-	auto settings = new HTTPServerSettings;
-	settings.options |= HTTPServerOption.reusePort;
-	settings.port = 8080;
-	listenHTTP(settings, router);
-}
-
-class WebInterface {
-	private {
-		MongoCollection _worldCollection;
-		MongoCollection _fortuneCollection;
-		UniformVariable!uint _uniformVariable;
-		Xorshift _gen;
-	}
-
-	this()
-	{
-		import std.process : environment;
-		auto db = connectMongoDB("tfb-database");
-		_worldCollection = db.getCollection("hello_world.world");
-		_fortuneCollection = db.getCollection("hello_world.fortune");
-
-		_gen = Xorshift(unpredictableSeedOf!uint);
-		_uniformVariable = UniformVariable!uint(1, worldSize);
-	}
-
-	// GET /
-	void get()
-	{
-		render!"index.dt";
-	}
-
-	// GET /json
-	void getJson(HTTPServerResponse res)
-	{
-		// NOTE: the status and content type parameters are optional, but we need
-		// to specify them, because the default content type is "application/json; charset=UTF8"
-		res.writeJsonBody(Message("Hello, World!"), HTTPStatus.ok, "application/json");
-	}
-
-	// GET /db
-	void getDB(HTTPServerResponse res)
-	{
-		struct Q { int _id; }
-		auto query = Q(_uniformVariable(_gen));
-		auto w = WorldResponse(_worldCollection.findOne!World(query));
-		res.writeJsonBody(w, HTTPStatus.ok, "application/json");
-	}
-
-	// GET /queries?queries=...
-	void getQueries(HTTPServerResponse res, string queries)
-	{
-		import std.algorithm : min, max;
-
-		// Convert the "queries" parameter to int and ignore any conversion errors
-		// Note that you'd usually declare queries as int instead. However, the
-		// test required to gracefully handle errors here.
-		int count = 1;
-		try count = min(max(queries.to!int, 1), 500);
-		catch (ConvException) {}
-
-		// assemble the response array
-		scope data = new WorldResponse[count];
-		foreach (ref w; data) {
-			static struct Q { int _id; }
-			auto query = Q(_uniformVariable(_gen));
-			w = WorldResponse(_worldCollection.findOne!World(query));
-		}
-
-		// write response as JSON
-		res.writeJsonBody(data, HTTPStatus.ok, "application/json");
-	}
-
-	// GET /fortunes
-	void getFortunes()
-	{
-		import std.algorithm : map, sort;
-
-		FortuneResponse[] data;
-		data = _fortuneCollection.find!Fortune().map!(f => FortuneResponse(f)).array;
-		data ~= FortuneResponse(Fortune(0, "Additional fortune added at request time."));
-		data.sort!((a, b) => a.message < b.message);
-		render!("fortunes.dt", data);
-	}
-
-	// GET /updates?queries=...
-	void getUpdates(HTTPServerResponse res, string queries)
-	{
-		import std.algorithm : min, max;
-
-		int count = 1;
-		try count = min(max(queries.to!int, 1), 500);
-		catch (ConvException e) {}
-
-		scope data = new WorldResponse[count];
-		foreach (ref w; data) {
-			static struct Q { int _id; }
-			auto query = Q(_uniformVariable(_gen));
-			w = WorldResponse(_worldCollection.findOne!World(query));
-
-			// update random number
-			w.randomNumber = _uniformVariable(_gen);
-
-			// persist to DB
-			static struct US {
-				double randomNumber;
-			}
-			static struct U {
-				@name("$set") US set;
-			}
-			_worldCollection.update(query, U(US(w.randomNumber)));
-		}
-
-		// write response as JSON
-		res.writeJsonBody(data, HTTPStatus.ok, "application/json");
-	}
-
-	// GET /plaintext
-	void getPlaintext(HTTPServerResponse res)
-	{
-		res.writeBody("Hello, World!", HTTPStatus.ok, "text/plain");
-	}
-}
-
-struct Message {
-	string message;
-}
-
-struct World {
-	double _id;
-	double randomNumber;
-}
-
-struct Fortune {
-	double _id;
-	string message;
-}
-
-struct WorldResponse {
-	this(World w) { this.id = cast(int)w._id; this.randomNumber = cast(int)w.randomNumber; }
-	int id;
-	int randomNumber;
-}
-
-struct FortuneResponse {
-	this(Fortune f) { this.id = cast(int)f._id; this.message = f.message; }
-	int id;
-	string message;
-}

+ 0 - 188
frameworks/D/vibed/source/postgresql.d

@@ -1,188 +0,0 @@
-import vibe.core.core;
-import vibe.http.router;
-import vibe.http.server;
-import vibe.web.web;
-import vibe.db.postgresql;
-
-import mir.random : unpredictableSeedOf;
-import mir.random.variable : UniformVariable;
-import mir.random.engine.xorshift : Xorshift;
-
-import std.conv : ConvException, to;
-import std.array;
-
-enum worldSize = 10000;
-enum poolSize = 256;
-
-PostgresClient client;
-
-shared static this()
-{
-	import derelict.pq.pq;
-	import derelict.util.exception : ShouldThrow;
-	ShouldThrow myMissingSymCB( string symbolName ) { return ShouldThrow.No; }
-	DerelictPQ.missingSymbolCallback = &myMissingSymCB;
-}
-
-void main()
-{
-	runWorkerTaskDist(&runServer);
-	runApplication();
-}
-
-void runServer()
-{
-	auto router = new URLRouter;
-	router.registerWebInterface(new WebInterface);
-	router.rebuild();
-
-	auto settings = new HTTPServerSettings;
-	settings.options |= HTTPServerOption.reusePort;
-	settings.port = 8080;
-	listenHTTP(settings, router);
-}
-
-class WebInterface {
-	private {
-		UniformVariable!uint _uniformVariable;
-		Xorshift _gen;
-	}
-
-	this()
-	{
-		_gen = Xorshift(unpredictableSeedOf!uint);
-		_uniformVariable = UniformVariable!uint(1, worldSize);
-	}
-
-	// GET /
-	void get()
-	{
-		render!"index.dt";
-	}
-
-	// GET /json
-	void getJson(HTTPServerResponse res)
-	{
-		// NOTE: the status and content type parameters are optional, but we need
-		// to specify them, because the default content type is "application/json; charset=UTF8"
-		res.writeJsonBody(Message("Hello, World!"), HTTPStatus.ok, "application/json");
-	}
-
-	// GET /db
-	void getDB(HTTPServerResponse res)
-	{
-		auto conn = client.lockConnection();
-		scope(exit)	delete conn;
-
-		immutable id = _uniformVariable(_gen);
-		immutable query = "SELECT randomNumber FROM world WHERE id = " ~  id.to!string;
-		immutable result = conn.execStatement(query, ValueFormat.BINARY).rangify.front;
-		auto w = WorldResponse(id, result[0].as!PGinteger);
-		res.writeJsonBody(w, HTTPStatus.ok, "application/json");
-	}
-
-	// GET /queries?queries=...
-	void getQueries(HTTPServerResponse res, string queries)
-	{
-		import std.algorithm : min, max;
-
-		auto conn = client.lockConnection();
-		scope(exit)	delete conn;
-
-		// Convert the "queries" parameter to int and ignore any conversion errors
-		// Note that you'd usually declare queries as int instead. However, the
-		// test required to gracefully handle errors here.
-		int count = 1;
-		try count = min(max(queries.to!int, 1), 500);
-		catch (ConvException) {}
-
-		// assemble the response array
-		scope data = new WorldResponse[count];
-		foreach (ref w; data) {
-			immutable id = _uniformVariable(_gen);
-			immutable query = "SELECT randomNumber FROM world WHERE id = " ~  id.to!string;
-			immutable result = conn.execStatement(query, ValueFormat.BINARY).rangify.front;
-			w = WorldResponse(id, result[0].as!PGinteger);
-		}
-
-		// write response as JSON
-		res.writeJsonBody(data, HTTPStatus.ok, "application/json");
-	}
-
-	// GET /fortunes
-	void getFortunes()
-	{
-		import std.algorithm : map, sort;
-
-		auto conn = client.lockConnection();
-		scope(exit)	delete conn;
-
-		FortuneResponse[] data;
-		immutable query = "SELECT id, message::text FROM Fortune";
-		auto result = conn.execStatement(query, ValueFormat.BINARY).rangify;
-		data = result.map!(f => FortuneResponse(f[0].as!PGinteger, f[1].as!PGtext)).array;
-		data ~= FortuneResponse(0, "Additional fortune added at request time.");
-		data.sort!((a, b) => a.message < b.message);
-		render!("fortunes.dt", data);
-	}
-
-	// GET /updates?queries=...
-	void getUpdates(HTTPServerResponse res, string queries)
-	{
-		import std.algorithm : min, max;
-
-		auto conn = client.lockConnection();
-		scope(exit)	delete conn;
-
-		int count = 1;
-		try count = min(max(queries.to!int, 1), 500);
-		catch (ConvException e) {}
-
-		scope data = new WorldResponse[count];
-		foreach (ref w; data) {
-			immutable id = _uniformVariable(_gen);
-			immutable sid = id.to!string;
-			immutable query = "SELECT randomNumber FROM world WHERE id = " ~  sid;
-			immutable result = conn.execStatement(query, ValueFormat.BINARY).rangify.front;
-			w = WorldResponse(id, result[0].as!PGinteger);
-
-			// update random number
-			w.randomNumber = _uniformVariable(_gen);
-
-			// persist to DB
-			conn.execStatement("UPDATE world SET randomNumber = " ~ w.randomNumber.to!string ~ "  WHERE id = " ~ sid);
-
-		}
-
-		// write response as JSON
-		res.writeJsonBody(data, HTTPStatus.ok, "application/json");
-	}
-
-	// GET /plaintext
-	void getPlaintext(HTTPServerResponse res)
-	{
-		res.writeBody("Hello, World!", HTTPStatus.ok, "text/plain");
-	}
-}
-
-struct Message {
-	string message;
-}
-
-struct WorldResponse {
-	int id;
-	int randomNumber;
-}
-
-struct FortuneResponse {
-	int id;
-	string message;
-}
-
-static this()
-{
-	import std.process : environment;
-	auto connectionInfo = "host=tfb-database port=5432 "
-						~ "dbname=hello_world  user=benchmarkdbuser password=benchmarkdbpass";
-	client = new PostgresClient(connectionInfo, poolSize);
-}

+ 0 - 11
frameworks/D/vibed/vibed-dmd-pgsql.dockerfile

@@ -1,11 +0,0 @@
-FROM dlanguage/ldc:1.7.0
-
-ADD ./ /vibed
-WORKDIR /vibed
-
-RUN apt update -yqq && apt install -yqq libpq-dev zlib1g-dev
-
-RUN dub upgrade --verbose
-RUN dub build -b release --combined --config=postgresql
-
-CMD ["./fwb"]

+ 0 - 11
frameworks/D/vibed/vibed-ldc-pgsql.dockerfile

@@ -1,11 +0,0 @@
-FROM dlanguage/ldc:1.7.0
-
-ADD ./ /vibed
-WORKDIR /vibed
-
-RUN apt update -yqq && apt install -yqq libpq-dev zlib1g-dev
-
-RUN dub upgrade --verbose
-RUN dub build -b release --compiler=ldc2 --combined --config=postgresql
-
-CMD ["./fwb"]

+ 0 - 11
frameworks/D/vibed/vibed-ldc.dockerfile

@@ -1,11 +0,0 @@
-FROM dlanguage/ldc:1.7.0
-
-ADD ./ /vibed
-WORKDIR /vibed
-
-RUN apt update -yqq && apt install -yqq zlib1g-dev
-
-RUN dub upgrade --verbose
-RUN dub build -b release --compiler=ldc2 --combined --verbose
-
-CMD ["./fwb"]

+ 0 - 11
frameworks/D/vibed/vibed.dockerfile

@@ -1,11 +0,0 @@
-FROM dlanguage/ldc:1.7.0
-
-ADD ./ /vibed
-WORKDIR /vibed
-
-RUN apt update -yqq && apt install -yqq libpq-dev zlib1g-dev
-
-RUN dub upgrade --verbose
-RUN dub build -b release --combined
-
-CMD ["./fwb"]

+ 0 - 15
frameworks/D/vibed/views/fortunes.dt

@@ -1,15 +0,0 @@
-extends layout
-
-block head
-	title Fortunes
-
-block body
-	table
-		tr
-			th id
-			th message
-		- foreach (f; data)
-			tr
-				td= f.id
-				td= f.message
-

+ 0 - 19
frameworks/D/vibed/views/index.dt

@@ -1,19 +0,0 @@
-doctype html
-html
-  head
-    style a { display: block }
-  body
-    ul
-      li
-        a(href="/generate-world") generate world
-      li
-        a(href="/generate-fortunes") generate fortunes
-    ol
-      li
-        a(href="/json") json stringify
-      li
-        a(href="/db") single query
-      li
-        a(href="/queries?queries=5") multiple queries
-      li
-        a(href="/plaintext") plain text

+ 0 - 7
frameworks/D/vibed/views/layout.dt

@@ -1,7 +0,0 @@
-doctype html
-html
-	head
-		block head
-	body
-		block body
-