|
1 | | -# Vert.x DataLoader |
| 1 | +# Vert.x `DataLoader` |
2 | 2 |
|
3 | | -**Work in progress. More documentation coming soon..** |
| 3 | +**More documentation coming soon..** |
4 | 4 |
|
5 | | -DataLoader is a generic utility to be used as part of your Vert.x application's batch data fetching layer to provide a |
6 | | -consistent API over various back-ends and reduce requests to those back-ends via batching and caching. |
| 5 | +This small and simple utility library is a port of [Facebook DataLoader](https://github.com/facebook/dataloader) |
| 6 | +to Java 8 for use with [Vert.x](http://vertx.io). It can serve as integral part of your application's data layer to provide a |
| 7 | +consistent API over various back-ends and reduce message communication overhead through batching and caching. |
7 | 8 |
|
8 | | -The code is a direct port of the [facebook/dataloader](https://github.com/facebook/dataloader) reference |
9 | | -implementation provided by Facebook, with some slight modifications to make it work for Java 8 |
10 | | -and [Vert.x](http://vertx.io). |
| 9 | +An important use case for `DataLoader` is improving the efficiency of GraphQL query execution, but there are |
| 10 | +many other use cases where you can benefit from using this utility. |
11 | 11 |
|
12 | | -Be sure to check the original documentation: https://github.com/facebook/dataloader/blob/master/README.md |
13 | | -And this post explaining how to use data loader with GraphQL: http://gajus.com/blog/9/using-dataloader-to-batch-requests |
| 12 | +Most of the code is ported directly from Facebook's reference implementation, with one IMPORTANT adaptation to make |
| 13 | +it work for Java 8 and Vert.x. ([Find more on this in the paragraphs below]). |
| 14 | + |
| 15 | +But before reading on, be sure to take a short dive into the |
| 16 | +[original documentation](https://github.com/facebook/dataloader/blob/master/README.md) provided by Lee Byron (@leebyron) |
| 17 | +and Nicholas Schrock (@schrockn) from [Facebook](https://www.facebook.com/), the creators of the original data loader. |
| 18 | + |
| 19 | +## Table of contents |
| 20 | + |
| 21 | +- [Features](#features) |
| 22 | +- [Differences to reference implementation](#differences-to-reference-implementation) |
| 23 | + - [Manual dispatching](#manual-dispatching) |
| 24 | + - [Additional features](#additional-features) |
| 25 | +- [Let's get started!](#lets-get-started) |
| 26 | + - [Installing](#installing) |
| 27 | + - [Building](#building) |
| 28 | + - [Using](#using) |
| 29 | + - [JavaDoc](#javadoc) |
| 30 | +- [Project plans](#project-plans) |
| 31 | + - [Current releases](#current-releases) |
| 32 | + - [Known issues](#known-issues) |
| 33 | + - [Upcoming features](#upcoming-features) |
| 34 | + - [Future ideas](#future-ideas) |
| 35 | +- [Other information sources](#other-information-sources) |
| 36 | +- [Contributing](#contributing) |
| 37 | +- [Acknowledgements](#acknowledgements) |
| 38 | +- [Licensing](#licensing) |
| 39 | + |
| 40 | +## Features |
| 41 | + |
| 42 | +- Yes, they will be listed here :) |
| 43 | + |
| 44 | +## Differences to reference implementation |
| 45 | + |
| 46 | +### Manual dispatching |
| 47 | + |
| 48 | +### Additional features |
| 49 | + |
| 50 | +- None, so far :( |
| 51 | + |
| 52 | +## Let's get started! |
| 53 | + |
| 54 | +### Installing |
| 55 | + |
| 56 | +### Building |
| 57 | + |
| 58 | +### Using |
| 59 | + |
| 60 | +### JavaDoc |
| 61 | + |
| 62 | +## Project plans |
| 63 | + |
| 64 | +### Current releases |
| 65 | + |
| 66 | +- Not yet released |
| 67 | + |
| 68 | +### Known issues |
| 69 | + |
| 70 | +- ** Work in progress..** |
| 71 | +- Not yet production-ready as of yet, still porting tests that may uncover bugs. |
| 72 | + |
| 73 | +### Upcoming features |
| 74 | + |
| 75 | +### Future ideas |
| 76 | + |
| 77 | +## Other information sources |
| 78 | + |
| 79 | +- [Using DataLoader and GraphQL to batch requests](http://gajus.com/blog/9/using-dataloader-to-batch-requests) |
| 80 | + |
| 81 | +## Contributing |
| 82 | + |
| 83 | +All your feedback and help to improve this project is very welcome. Please create issues for your bugs, ideas and |
| 84 | +enhancement requests, or better yet, contribute directly by creating a PR. |
| 85 | + |
| 86 | +When reporting an issue, please add a detailed instruction, and if possible a code snippet or test that can be used |
| 87 | +as a reproducer of your problem. |
| 88 | + |
| 89 | +When creating a pull request, please adhere to the Vert.x coding style where possible, and create tests with your |
| 90 | +code so it keeps providing an excellent test coverage level. PR's without tests may not be accepted unless they only |
| 91 | +deal with minor changes. |
| 92 | + |
| 93 | +## Acknowledgements |
| 94 | + |
| 95 | +This library is entirely inspired by the great works of [Lee Byron](https://github.com/leebyron) and |
| 96 | +[Nicholas Schrock](https://github.com/schrockn) from [Facebook](https://www.facebook.com/) whom I like to thank, and |
| 97 | +especially @leebyron for taking the time and effort to provide 100% coverage on the codebase. A set of tests which |
| 98 | +I also ported. |
| 99 | + |
| 100 | +## Licensing |
| 101 | + |
| 102 | +This project [vertx-dataloader](https://github.com/engagingspaces/vertx-dataloader) is licensed under the |
| 103 | +[Apache Commons v2.0](https://github.com/engagingspaces/vertx-dataloader/LICENSE) license. |
| 104 | + |
| 105 | +Copyright © 2016 Arnold Schrijver and other |
| 106 | +[contributors](https://github.com/engagingspaces/vertx-dataloader/graphs/contributors) |
0 commit comments