{"_id":"@darinmcgill/gink","name":"@darinmcgill/gink","dist-tags":{"latest":"0.0.20221231"},"versions":{"0.0.20221231":{"name":"@darinmcgill/gink","version":"0.0.20221231","description":"an eventually consistent database","main":"tsc.out/main.js","browser":"webpack.out/packed.js","repository":{"type":"git","url":"git+https://github.com/google/gink.git"},"keywords":["database","browser","crdt","crdts","document-store"],"author":{"name":"Darin McGill"},"license":"Apache-2.0","bugs":{"url":"https://github.com/google/gink/issues"},"bin":{"gink":"tsc.out/main.js"},"scripts":{"serve":"GINK_PORT=8080 ./tsc.out/main.js"},"homepage":"https://github.com/google/gink#readme","dependencies":{"fake-indexeddb":"^3.1.7","google-protobuf":"^3.19.3","idb":"^7.0.0","node-static":"^0.7.11","websocket":"^1.0.34"},"devDependencies":{"@babel/core":"^7.17.5","@babel/preset-env":"^7.16.11","@babel/preset-typescript":"^7.16.7","@types/google-protobuf":"^3.15.5","@types/jest":"^27.4.0","@types/node-static":"^0.7.7","@types/websocket":"^1.0.5","babel-jest":"^27.5.1","chrome-remote-interface":"^0.31.3","chromedriver":"^104.0.0","fs-ext":"^2.0.0","jest":"^27.5.1","selenium-webdriver":"^4.4.0","ts-jest":"^27.1.3","ts-loader":"^9.2.6","ts-node":"^10.9.1","tslib":"^2.3.1","typescript":"^4.5.5","webpack":"^5.67.0","webpack-cli":"^4.9.2","webpack-dev-server":"^4.7.3"},"types":"./tsc.out/main.d.ts","gitHead":"25385e5188be5f9afa9fc230068ee417a20625fe","_id":"@darinmcgill/gink@0.0.20221231","_nodeVersion":"19.3.0","_npmVersion":"9.2.0","dist":{"integrity":"sha512-LTzRxcqrtXnrMHwlDciI38wcw8So2B6MA/bWFjsrrEulUteg96iarCBRrg0j+PniLOf5oabnOEUU8NqIsBUrAA==","shasum":"685d5fa5452429477bf6c8597fcdabf26f6c20f9","tarball":"https://registry.npmjs.org/@darinmcgill/gink/-/gink-0.0.20221231.tgz","fileCount":88,"unpackedSize":2479381,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCex+Prth3PH28fwTzPr1ng8YZrAbXB53XzOLYmnIiX7QIhAIRspQmNz0wbIG75D6ofydYrZ8kyBD5Ct7WfEAxI8NIX"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsLfEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq88Q//QiWLiG8UosXTZAj0dTkCVbB/lEgOOdKI7nsQEZ1Ht+8C9blI\r\nBKxcdBL4hrBxATDXUf4/65fcnJYUT5OYq8k+QyYXyNVOTY2hveQu+DPIU9OF\r\n9QrjfL+/Wln755L+1JWugPtk9Jr/tiJ0OpPcEHVrdAOmfKZfJbOGZSMwVFEx\r\n5mgziRkQ/yhypiusvyEF3Q9TTMC2Q3CmxEo7pIv8KUzy1OpVzNAdDSbZlSiG\r\nxPFgMNTyDQNRa92WGaxcLeWRXQoZH1MOO9NGTcHU/tJW8HYn9l6lxUHMrO/+\r\nQ6eqYCSY1cOpuOoNX9EjorLA82fwZ/lgAYE2Y1p4jodrzbzRncEUoRh7nlH2\r\nDr6uEdaCrpDzaIfgYVseTN2/U4EqnMJbgEPxyqRVXfNkx4dffODnZrfNX7Sq\r\nIiq+BKr/YbQRyj4e0/mZke9wAXAvWR2uM+ZpEaf2SrQyWGRxg/1gkotIU8XM\r\nzGtBvtFwydu2H0CRhx0n346kAwF0huopLhn6UUkx59iiPph2zMunwxTP15OB\r\nBvVeuT2lMQTN+V3XCoZPzZr3TdrnzSzn7fMgPyiqp7JpcnODSB/qjNioPTcl\r\nb59L39sA9JH9lf9T9MPmvQ/ohpaFZ59/04h0wTic8jxl+PsqnT7mMO2o+dtO\r\nTm0RqQy+9x/YrViPEXds6gubELdnSVYJJXY=\r\n=nKiE\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"darinmcgill","email":"darin.mcgill@gmail.com"},"directories":{},"maintainers":[{"name":"darinmcgill","email":"darin.mcgill@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/gink_0.0.20221231_1672525763853_0.47730808625343846"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-31T22:29:23.750Z","0.0.20221231":"2022-12-31T22:29:24.068Z","modified":"2022-12-31T22:29:24.251Z"},"maintainers":[{"name":"darinmcgill","email":"darin.mcgill@gmail.com"}],"description":"an eventually consistent database","homepage":"https://github.com/google/gink#readme","keywords":["database","browser","crdt","crdts","document-store"],"repository":{"type":"git","url":"git+https://github.com/google/gink.git"},"author":{"name":"Darin McGill"},"bugs":{"url":"https://github.com/google/gink/issues"},"license":"Apache-2.0","readme":"# Gink\n\nGink is an open source, cryptographically secure, multi-master database system\nbased on Conflict Free Replicated Data Types (CRDTs) and Event Sourcing.  CRDTs\nconceptualize updates in terms of the changes they’re intended to make to a\nmodel.  On the other hand, the Event Sourcing approach characterizes each update\nas an event (also called action) that holds all possibly relevant information\npertaining to something that happened, and defers the question of what to do\nwith those updates to later written consuming code (which can be designed as a\ncommutative reducer or something like a trigger).  Both of these models allow\nfor updates/events to originate at any node on the network and be propagated to\nother nodes to arrive at an eventually consistent state.\n\nGink is designed to make on-prem-to-cloud migrations easy and multi-cloud\ndeployments trivial. The system will make it easy to start projects with a local\ndatabase and then migrate them to the cloud for wider deployment. It will be\ndesigned for developers who value flexibility and robustness.\n\nConflict Free Replicated Data Types have been an active area of research in\nrecent years, but  multi-paradigm, enterprise-grade implementations have yet to\nappear.  A good implementation would offer ultra-low-latency, cloud\nindependence, and 100% availability (at the cost of consistency in the case of\nnetwork disconnects). The “mergeable” multi-master capability will unlock new\narchitecture options for edge computing and dynamic database scaling.\n\nThis is not an officially supported Google product.\n\n# Installing Required Dependencies on Linux\n\nFor the typescript implementation, this will install the system dependencies.\n```\nsudo apt-get install -y npm protobuf-compiler\nsudo npm install -g ts-node\n```\n\nInside the local copy of the repo, install the required npm packages with:\n```\nnpm install\n```\n\n# Compile Proto Files\n```\nmake\n```\n\n# Testing\n```\nnpm run test\n```\n","readmeFilename":"README.md"}