mirror of
https://github.com/amark/gun.git
synced 2025-06-05 21:56:51 +00:00
version bump
This commit is contained in:
parent
273036cad6
commit
d56c80cccf
2
gun.min.js
vendored
2
gun.min.js
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gun",
|
||||
"version": "0.9.95",
|
||||
"version": "0.9.96",
|
||||
"description": "A realtime, decentralized, offline-first, graph data synchronization engine.",
|
||||
"main": "index.js",
|
||||
"browser": "gun.min.js",
|
||||
|
130
test/panic/curl-server.js
Normal file
130
test/panic/curl-server.js
Normal file
@ -0,0 +1,130 @@
|
||||
var config = {
|
||||
IP: require('ip').address(),
|
||||
port: 8080,
|
||||
servers: 2,
|
||||
dir: __dirname
|
||||
}
|
||||
|
||||
var panic = require('panic-server');
|
||||
panic.server().listen(config.port);
|
||||
|
||||
var clients = panic.clients;
|
||||
var manager = require('panic-manager')();
|
||||
|
||||
manager.start({
|
||||
clients: Array(config.servers).fill().map(function(u, i){
|
||||
return {
|
||||
type: 'node',
|
||||
port: config.port + (i + 1)
|
||||
}
|
||||
}),
|
||||
panic: 'http://' + config.IP + ':' + config.port
|
||||
});
|
||||
|
||||
var servers = clients.filter('Node.js');
|
||||
var alice = servers.pluck(1);
|
||||
var bob = servers.excluding(alice).pluck(1);
|
||||
|
||||
describe("Server to server sync", function(){
|
||||
this.timeout(5000);
|
||||
|
||||
it("Servers have joined!", function(){
|
||||
return servers.atLeast(config.servers);
|
||||
});
|
||||
|
||||
it("Start GUN Bob server.", function(){
|
||||
return bob.run(function(test){
|
||||
test.async();
|
||||
|
||||
var express = require('express');
|
||||
var bodyParser = require('body-parser');
|
||||
var Gun = require('gun');
|
||||
|
||||
var app = express();
|
||||
|
||||
app.use(Gun.serve)
|
||||
app.use(bodyParser.json())
|
||||
|
||||
app.post('/foo', function(req, res) {
|
||||
gun.get('bar').put(req.body)
|
||||
res.sendStatus(200)
|
||||
});
|
||||
|
||||
var server = app.listen(8082, function(){ test.done() })
|
||||
|
||||
var gun = Gun({peers: 'http://localhost:8081/gun', web: server})
|
||||
|
||||
gun.get('bar').on(function(data, key){
|
||||
console.log('bob', data, key)
|
||||
})
|
||||
|
||||
}, {i: 1, config: config});
|
||||
});
|
||||
|
||||
it("Start GUN Alice server.", function(){
|
||||
return alice.run(function(test){
|
||||
test.async();
|
||||
|
||||
var express = require('express');
|
||||
var bodyParser = require('body-parser');
|
||||
var Gun = require('gun');
|
||||
|
||||
|
||||
var app = express()
|
||||
|
||||
app.use(Gun.serve)
|
||||
|
||||
var server = app.listen(8081, function(){ test.done() })
|
||||
|
||||
var gun = Gun({peers: 'http://localhost:8082/gun', web: server})
|
||||
|
||||
gun.get('bar').on(function(data, key){
|
||||
console.log('alice', data, key)
|
||||
global.DATA = data;
|
||||
})
|
||||
|
||||
}, {i: 1, config: config});
|
||||
});
|
||||
|
||||
it("Curl Bob!", function(){
|
||||
var reply = require('child_process').execSync("curl --request POST "
|
||||
+ "--url http://localhost:8082/foo "
|
||||
+ "--header 'content-type: application/json' "
|
||||
+ "--data '"+JSON.stringify({bar: "FOOBAR"})+"'");
|
||||
console.log("REPLY:", reply.toString());
|
||||
if(reply.toString().indexOf("err") >= 0){
|
||||
console.log(reply.toString());
|
||||
throw new Error("Server did not like the request!");
|
||||
}
|
||||
return;
|
||||
});
|
||||
|
||||
it("Did Alice get it?", function(){
|
||||
return alice.run(function(test){
|
||||
test.async();
|
||||
|
||||
setTimeout(function(){
|
||||
console.log("does Alice have it?", global.DATA);
|
||||
if(!global.DATA){
|
||||
console.log("no data!");
|
||||
return;
|
||||
}
|
||||
test.done();
|
||||
}, 1000);
|
||||
|
||||
}, {i: 1, config: config});
|
||||
});
|
||||
|
||||
it("All finished!", function(done){
|
||||
console.log("Done! Cleaning things up...");
|
||||
setTimeout(function(){
|
||||
done();
|
||||
},1000);
|
||||
});
|
||||
|
||||
after("Everything shut down.", function(){
|
||||
return servers.run(function(){
|
||||
process.exit();
|
||||
});
|
||||
});
|
||||
});
|
@ -3,7 +3,7 @@ var config = {
|
||||
port: 8080,
|
||||
servers: 2,
|
||||
browsers: 2,
|
||||
each: 1000000,
|
||||
each: 10000000,
|
||||
burst: 12000,
|
||||
wait: 1,
|
||||
dir: __dirname,
|
||||
@ -41,7 +41,7 @@ var bob = browsers.excluding(alice).pluck(1);
|
||||
|
||||
describe("Make sure the Radix Storage Engine (RSE) works.", function(){
|
||||
//this.timeout(5 * 60 * 1000);
|
||||
this.timeout(10 * 60 * 1000);
|
||||
this.timeout(100 * 60 * 1000);
|
||||
|
||||
it("Servers have joined!", function(){
|
||||
return servers.atLeast(config.servers);
|
||||
@ -50,12 +50,18 @@ describe("Make sure the Radix Storage Engine (RSE) works.", function(){
|
||||
it("GUN started!", function(){
|
||||
return server.run(function(test){
|
||||
var env = test.props;
|
||||
console.log("????", process.argv);
|
||||
test.async();
|
||||
if(require('fs').existsSync('radata')){
|
||||
console.log("Please delete previous data first!");
|
||||
explode;
|
||||
return;
|
||||
}
|
||||
setInterval(function(){
|
||||
var mem = process.memoryUsage();
|
||||
var u = Math.round(mem.heapUsed / 1024 / 1024 * 100) / 100;
|
||||
console.log(u, 'MB of', Math.round(mem.heapTotal / 1024 / 1024 * 100) / 100);
|
||||
}, 1000);
|
||||
var port = env.config.port + env.i;
|
||||
var server = require('http').createServer(function(req, res){
|
||||
res.end("I am "+ env.i +"!");
|
||||
@ -84,6 +90,7 @@ describe("Make sure the Radix Storage Engine (RSE) works.", function(){
|
||||
window.gun = gun;
|
||||
|
||||
var n = Gun.time.is(), i = 0, c = 0, b = env.config.burst, l = env.config.each;
|
||||
var raw = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||
|
||||
function save(i){
|
||||
if(i > l){
|
||||
@ -91,12 +98,13 @@ describe("Make sure the Radix Storage Engine (RSE) works.", function(){
|
||||
}
|
||||
var d;
|
||||
var ref = window.gun.get('asdf'+i);
|
||||
ref.put({hello: 'world' + i + '!'}, function(ack){
|
||||
ref.put({hello: raw + i}, function(ack){
|
||||
if(d){ return } d = true;
|
||||
c++;
|
||||
!(i % b) && console.log(i+'/'+l);//, '@'+Math.floor(b/((-n + (n = Gun.time.is()))/1000))+'/sec');
|
||||
//localStorage.clear();
|
||||
ref.off();
|
||||
//console.log("gl:", Object.keys(window.gun._.graph).length);
|
||||
if(c < l){ return }
|
||||
setTimeout(function(){
|
||||
test.done();
|
||||
@ -126,7 +134,12 @@ describe("Make sure the Radix Storage Engine (RSE) works.", function(){
|
||||
console.log("Server data could not be found!");
|
||||
explode;
|
||||
return;
|
||||
}
|
||||
}
|
||||
setInterval(function(){
|
||||
var mem = process.memoryUsage();
|
||||
var u = Math.round(mem.heapUsed / 1024 / 1024 * 100) / 100;
|
||||
console.log(u, 'MB');
|
||||
}, 1000);
|
||||
var port = env.config.port + env.i;
|
||||
var server = require('http').createServer(function(req, res){
|
||||
res.end("I am "+ env.i +"!");
|
||||
@ -143,6 +156,8 @@ describe("Make sure the Radix Storage Engine (RSE) works.", function(){
|
||||
it("Bob read data", function(){
|
||||
return bob.run(function(test){
|
||||
test.async();
|
||||
test.done();
|
||||
return;asdf;
|
||||
console.log("I AM BOB");
|
||||
localStorage.clear();
|
||||
var env = test.props;
|
||||
@ -150,17 +165,19 @@ describe("Make sure the Radix Storage Engine (RSE) works.", function(){
|
||||
window.gun = gun;
|
||||
|
||||
var n = Gun.time.is(), i = 0, c = 0, b = env.config.burst, l = env.config.each;
|
||||
var raw = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
||||
|
||||
function check(i){
|
||||
var d;
|
||||
var ref = window.gun.get('asdf' + i);
|
||||
ref.on(function(data){
|
||||
if(('world'+i+'!') !== data.hello){ return test.fail('wrong ' + i) }
|
||||
if((raw+i) !== data.hello){ return test.fail('wrong ' + i) }
|
||||
if(d){ return } d = true;
|
||||
!(i % b) && console.log(i+'/'+l);//, '@'+Math.floor(b/((-n + (n = Gun.time.is()))/1000))+'/sec'));
|
||||
c++;
|
||||
//localStorage.clear();
|
||||
ref.off();
|
||||
//console.log("gl:", Object.keys(window.gun._.graph).length);
|
||||
if(c < l){ return }
|
||||
console.log("DONE!", c+'/'+l);
|
||||
test.done();
|
||||
|
56
test/ptsd/memory.html
Normal file
56
test/ptsd/memory.html
Normal file
@ -0,0 +1,56 @@
|
||||
<button onclick="START()">spam</button>
|
||||
<button onclick="STOP()">stop</button>
|
||||
<script src="../../gun.js"></script>
|
||||
<script>
|
||||
;(function(){
|
||||
window.SPAM = function(cb, opt){
|
||||
opt = Gun.num.is(opt)? {each: opt} : opt || {};
|
||||
setInterval(burst, opt.wait);
|
||||
|
||||
var n = Gun.time.is(), i = 0, c = 0, b = opt.burst || 1, l = opt.each || 100;
|
||||
var raw = "AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA AAAAA "
|
||||
|
||||
function save(i){
|
||||
if(!window.SPAM){ return }
|
||||
if(i > l){
|
||||
return clearTimeout(t);
|
||||
}
|
||||
cb(i, raw + i);
|
||||
return;
|
||||
var d;
|
||||
var ref = window.gun.get('asdf'+i);
|
||||
ref.put({hello: raw + i}, function(ack){
|
||||
if(d){ return } d = true;
|
||||
c++;
|
||||
!(i % b) && console.log(i+'/'+l);//, '@'+Math.floor(b/((-n + (n = Gun.time.is()))/1000))+'/sec');
|
||||
//localStorage.clear();
|
||||
ref.off();
|
||||
//console.log("gl:", Object.keys(window.gun._.graph).length);
|
||||
if(c < l){ return }
|
||||
setTimeout(function(){
|
||||
test.done();
|
||||
}, 1000);
|
||||
});
|
||||
}
|
||||
function burst(){
|
||||
for(var j = 0; j <= b; j++){
|
||||
save(++i);
|
||||
}
|
||||
}
|
||||
var t;
|
||||
}
|
||||
}());
|
||||
|
||||
var gun = Gun();
|
||||
window.foo = [];
|
||||
function START(){
|
||||
alert(1);
|
||||
SPAM(function(i, v){
|
||||
//foo.push(Gun.text.random(1000));
|
||||
gun.get('asdf/'+i).put({data: Gun.text.random(1000), i: i});
|
||||
}, 10000);
|
||||
}
|
||||
function STOP(){
|
||||
window.SPAM = false;
|
||||
}
|
||||
</script>
|
Loading…
x
Reference in New Issue
Block a user