You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+36-18Lines changed: 36 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,17 @@
2
2
3
3
## Project Status
4
4
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.
6
16
7
17
----
8
18
@@ -13,40 +23,48 @@ This library is still under construction. Some of the core design details are st
13
23
14
24
## Installation
15
25
26
+
Using the [yarn](https://yarnpkg.com/) package manager:
27
+
16
28
```shell
17
29
yarn install reason-nodejs
18
30
```
19
31
32
+
Using the [npm](https://www.npmjs.com/) package manager:
33
+
34
+
```shell
35
+
npm i reason-nodejs
36
+
```
37
+
20
38
## Goal of this library
21
39
22
40
Help all Reason Node.js apps and libaries to be built faster by reducing the time spent on hand written bindings.
23
41
24
42
## Non-Goals
25
43
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.
28
45
- 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.
29
46
30
47
## Principles
31
48
32
49
- When available, we prefer to bind to the promise version of the library instead of the callback version to reduce binding surface.
33
50
- 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:
0 commit comments