Skip to content

Commit c41a30e

Browse files
committed
Prepare v1.0.0 release
1 parent ffad1ae commit c41a30e

File tree

3 files changed

+48
-9
lines changed

3 files changed

+48
-9
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Changelog
22

3+
## 1.0.0 (2018-05-17)
4+
5+
* First stable release, now following SemVer
6+
7+
* Improve documentation and usage examples
8+
9+
> Contains no other changes, so it's actually fully compatible with the v0.1.2 release.
10+
311
## 0.1.2 (2018-05-11)
412

513
* Feature: Limit buffer size to 64 KiB by default.

README.md

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,26 @@
11
# clue/reactphp-ndjson [![Build Status](https://travis-ci.org/clue/reactphp-ndjson.svg?branch=master)](https://travis-ci.org/clue/reactphp-ndjson)
22

3-
Streaming newline delimited JSON ([NDJSON](http://ndjson.org/)) parser and encoder for ReactPHP.
4-
5-
**Table of Contents**
3+
Streaming newline-delimited JSON ([NDJSON](http://ndjson.org/)) parser and encoder for [ReactPHP](https://reactphp.org/).
4+
5+
[NDJSON](http://ndjson.org/) can be used to store multiple JSON records in a
6+
file to store any kind of (uniform) structured data, such as a list of user
7+
objects or log entries. It uses a simple newline character between each
8+
individual record and as such can be both used for efficient persistence and
9+
simple append-style operations. This also allows it to be used in a streaming
10+
context, such as a simple inter-process commmunication (IPC) protocol or for a
11+
remote procedure call (RPC) mechanism.
12+
13+
* **Standard interfaces** -
14+
Allows easy integration with existing higher-level components by implementing
15+
ReactPHP's standard streaming interfaces.
16+
* **Lightweight, SOLID design** -
17+
Provides a thin abstraction that is [*just good enough*](https://en.wikipedia.org/wiki/Principle_of_good_enough)
18+
and does not get in your way.
19+
Builds on top of well-tested components and well-established concepts instead of reinventing the wheel.
20+
* **Good test coverage** -
21+
Comes with an [automated tests suite](#tests) and is regularly tested in the *real world*
22+
23+
**Table of contents**
624

725
* [Usage](#usage)
826
* [Decoder](#decoder)
@@ -200,18 +218,24 @@ For more details, see ReactPHP's
200218
The recommended way to install this library is [through Composer](https://getcomposer.org).
201219
[New to Composer?](https://getcomposer.org/doc/00-intro.md)
202220

221+
This project follows [SemVer](https://semver.org/).
203222
This will install the latest supported version:
204223

205224
```bash
206-
$ composer require clue/ndjson-react:^0.1.2
225+
$ composer require clue/ndjson-react:^1.0
207226
```
208227

209228
See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades.
210229

230+
This project aims to run on any platform and thus does not require any PHP
231+
extensions and supports running on legacy PHP 5.3 through current PHP 7+ and
232+
HHVM.
233+
It's *highly recommended to use PHP 7+* for this project.
234+
211235
## Tests
212236

213237
To run the test suite, you first need to clone this repo and then install all
214-
dependencies [through Composer](http://getcomposer.org):
238+
dependencies [through Composer](https://getcomposer.org):
215239

216240
```bash
217241
$ composer install
@@ -225,18 +249,25 @@ $ php vendor/bin/phpunit
225249

226250
## License
227251

228-
MIT
252+
This project is released under the permissive [MIT license](LICENSE).
253+
254+
> Did you know that I offer custom development services and issuing invoices for
255+
sponsorships of releases and for contributions? Contact me (@clue) for details.
229256

230257
## More
231258

232259
* If you want to learn more about processing streams of data, refer to the documentation of
233260
the underlying [react/stream](https://github.com/reactphp/stream) component.
234261

235-
* If you want to process compressed NDJSON files (`.ndjson.gz` file extension)
262+
* If you want to process compressed NDJSON files (`.ndjson.gz` file extension),
236263
you may want to use [clue/reactphp-zlib](https://github.com/clue/reactphp-zlib)
237264
on the compressed input stream before passing the decompressed stream to the NDJSON decoder.
238265

239-
* If you want to create compressed NDJSON files (`.ndjson.gz` file extension)
266+
* If you want to create compressed NDJSON files (`.ndjson.gz` file extension),
240267
you may want to use [clue/reactphp-zlib](https://github.com/clue/reactphp-zlib)
241268
on the resulting NDJSON encoder output stream before passing the compressed
242269
stream to the file output stream.
270+
271+
* If you want to concurrently process the records from your NDJSON stream,
272+
you may want to use [clue/reactphp-flux](https://github.com/clue/reactphp-flux)
273+
to concurrently process many (but not too many) records at once.

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "clue/ndjson-react",
3-
"description": "Streaming newline delimited JSON (NDJSON) parser, built on top of React PHP",
3+
"description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.",
44
"keywords": ["NDJSON", "newline", "JSON", "jsonlines", "streaming", "ReactPHP"],
55
"homepage": "https://github.com/clue/reactphp-ndjson",
66
"license": "MIT",

0 commit comments

Comments
 (0)