Skip to content

Commit 8a9b9d7

Browse files
committed
Announce beta release; adjust formatting
1 parent e24aef0 commit 8a9b9d7

File tree

1 file changed

+36
-18
lines changed

1 file changed

+36
-18
lines changed

README.md

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,17 @@
22

33
## Project Status
44

5-
**Update (3/19/2020):** `reason-node` is nearly ready for its first public release. Most of the important design decisions have been made & implemented, and most of the API surface is becoming relatively stable. There are still a few gaps here and there, and we intend to refine the API over time as new ideas emerge. Therefore, we will likely push an alpha release first, to give us some space to make breaking changes if needed, based on community feedback. We will post updates here and in the ReasonML Discord server.
5+
**Update (5/5/2020):**
6+
Announcing the beta release of `reason-node`! You can find it on NPM [here](https://www.npmjs.com/package/reason-nodejs), and install it from your terminal using the installation instructions below.
7+
8+
We invite everyone to try it out in your own projects, and to provide any feedback you want. GitHub issues are a great way to provide such feedback, since those are easy for us to track and manage. However, if you need any help or have specific questions, don't hesitate to contact us on [Discord](https://discord.gg/7MgaPKW)!
9+
10+
Happy hacking!
11+
12+
----
13+
14+
**Update (3/19/2020):**
15+
`reason-node` is nearly ready for its first public release. Most of the important design decisions have been made & implemented, and most of the API surface is becoming relatively stable. There are still a few gaps here and there, and we intend to refine the API over time as new ideas emerge. Therefore, we will likely push an alpha release first, to give us some space to make breaking changes if needed, based on community feedback. We will post updates here and in the ReasonML Discord server.
616

717
----
818

@@ -13,40 +23,48 @@ This library is still under construction. Some of the core design details are st
1323

1424
## Installation
1525

26+
Using the [yarn](https://yarnpkg.com/) package manager:
27+
1628
```shell
1729
yarn install reason-nodejs
1830
```
1931

32+
Using the [npm](https://www.npmjs.com/) package manager:
33+
34+
```shell
35+
npm i reason-nodejs
36+
```
37+
2038
## Goal of this library
2139

2240
Help all Reason Node.js apps and libaries to be built faster by reducing the time spent on hand written bindings.
2341

2442
## Non-Goals
2543

26-
- Have 100% coverage of Node.js api surface - Due to lack of man power for testing and maintaining, we should only have enough surface
27-
to cover all common use cases. But we should have enough coverage that developers only rarely have to write a custom binding.
44+
- Have 100% coverage of Node.js api surface - Due to lack of man power for testing and maintaining, we should only have enough surface to cover all common use cases. But we should have enough coverage that developers only rarely have to write a custom binding.
2845
- Ensure all APIs are idiomatic Reason and 100% typesafe - This library should be as barebones as possible to allow for minimal context switching between offical Node.js documentation and the Reason equilvalent. And due to the dynamic nature of the JS API, bending it to be idiomatic Reason will lead to a ton of bikeshedding in design as well as sacrificing maintainability.
2946

3047
## Principles
3148

3249
- When available, we prefer to bind to the promise version of the library instead of the callback version to reduce binding surface.
3350
- Use subtyping only where the benefit is huge. We use subtyping for various APIs that implement Node Streams, such as HTTP Request and Response, FileSystem streams, Crypto streams, and etc. This allows us to use a single set of functions to manipulate and combine streams across different modules. For example:
3451

35-
### Stream a file into stdout:
36-
37-
```reason
38-
Fs.createReadStream("/path")
39-
->Stream.pipe(Process.(stdout(process)))
40-
->Stream.onError(_ => Js.log("handleError"))
41-
```
42-
### Echo server:
43-
44-
```reason
45-
Http.createServer((request, response) => {
46-
request->Stream.onData(data => Js.log(data))
47-
request->Stream.pipe(response)->ignore
48-
});
49-
```
52+
### Stream a file into stdout:
53+
54+
```reason
55+
Fs.createReadStream("/path")
56+
->Stream.pipe(Process.(stdout(process)))
57+
->Stream.onError(_ => Js.log("handleError"))
58+
```
59+
60+
### Echo server:
61+
62+
```reason
63+
Http.createServer((request, response) => {
64+
request->Stream.onData(data => Js.log(data))
65+
request->Stream.pipe(response)->ignore
66+
});
67+
```
5068

5169
## Contributing
5270

0 commit comments

Comments
 (0)