Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neumino/reqlite
Reqlite - RethinkDB in JavaScript
https://github.com/neumino/reqlite
Last synced: about 1 month ago
JSON representation
Reqlite - RethinkDB in JavaScript
- Host: GitHub
- URL: https://github.com/neumino/reqlite
- Owner: neumino
- License: mit
- Created: 2014-07-21T05:56:20.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2023-03-21T09:33:15.000Z (over 1 year ago)
- Last Synced: 2024-10-30T05:57:55.376Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 2 MB
- Stars: 338
- Watchers: 9
- Forks: 25
- Open Issues: 28
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rethinkdb - Reqlite - reql in javascript
README
Reqlite - RethinkDB in JavaScript
=====[![Build Status](https://travis-ci.org/neumino/reqlite.svg?branch=master)](https://travis-ci.org/neumino/reqlite)
## What is it?
Reqlite is an implementation of a ReQL server in JavaScript. Meaning that
you can connect to reqlite with the RethinkDB driver and send queries (create
a table, insert documents, filter them, open a chanfeed etc.```
./bin/reqlite
```## Does it work?
Most of the methods work. There are currently 2000+ tests passing.
## Why?
The main reasons why this project was started were:
- Provide an easy way for node developers to test their code without having
to start a RethinkDB server.
- Maybe Meteor will use it to build a mini-rethinkdb - See [meteor-rethinkdb](https://github.com/Slava/meteor-rethinkdb)
- Use it on Windows instead of running a Docker container in Vagrant
- Because it's kind of fun :-)## Version of RethinkDB supported
It currently tries to match RethinkDB 2.2.x.
## Run tests
Most of the tests run queries against RethinkDB and reqlite at the same time, and compare the output.
Start RethinkDB on port `28015`
```
rethinkdb
```And reqlite on port `28016`:
```
node ./lib/node.js --port-offset 1
```If you are developing on reqlite, you may want to use
```
nodemon lib/node.js -- -L --port-offset 1 --debug
```Then run:
```
npm test
```## Use in the browser
### Build
Run in the reqlite repository:
```
npm run browserify
```You then need a driver to connect to reqlite. Clone
[rethinkdbdash](https://github.com/neumino/rethinkdbdash) and run:
```
npm run browserify
```_Note:_ The official JavaScript driver currently doesn't work with
reqlite because it cannot use a fake tcp connection (yet).### Example
Import `rethinkdbdash.js` and `reqlite.js` in your page. Then you can write:
```js
var Reqlite = require('reqlite');
// You cannot use a pool with reqlite
var r = require('rethinkdbdash')({pool: false});var server = new Reqlite();
// This simulate a fake tcp connection
var fakeTcpConnection = server.createConnection();// Create a rethinkdbdash connection by providing the fake tcp connection
r.connect({
connection: fakeTcpConnection
}).bind({}).then(function(connection) {
return r.expr('Ok').run(connection);
}).then(function(result) {
// result === 'Ok'
}).error(function(error) {
// Handle error
});
```## Roadmap
There are tons of things left to do!
See the [issues tracker](https://github.com/neumino/reqlite/issues)## Who did that?
Mostly [Michel Tu](https://github.com/neumino), but hopefully people will love this project and send tons
of pull requests!## Contribute
See [CONTRIBUTING.md](https://github.com/neumino/reqlite/blob/master/CONTRIBUTING.md), don't be shy :)
Huge thanks to the [contributors](https://github.com/neumino/reqlite/graphs/contributors)
## Contact
Michel Tu:
- [[email protected]](irc://irc.freenode.org/rethinkdb)
- [@neumino](https://twitter.com/neumino)
- [[email protected]]([email protected])## License
MIT, see the [LICENSE FILE](https://github.com/neumino/reqlite/blob/master/LICENSE)
## Note
This is a personal project and has nothing to do with my current employer (whoever that is) or
a previous one (whoever that is).