Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

create-neon README #697

Merged
merged 2 commits into from
Mar 12, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions create-neon/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Create Neon

The `create-neon` tool bootstraps [Neon](https://neon-bindings.com) projects, which allows developers to build binary Node modules written in [Rust](https://www.rust-lang.org).

## Usage

You can conveniently use this tool with the [`npm init`](https://docs.npmjs.com/cli/v7/commands/npm-init) syntax:

```sh
$ npm init neon my-project
```
79 changes: 78 additions & 1 deletion create-neon/data/templates/README.md.hbs
Original file line number Diff line number Diff line change
@@ -1,5 +1,82 @@
# {{package.name}}

{{#if package.description}}
{{package.description}}
*{{package.name}}:* {{package.description}}

{{/if}}
This project was bootstrapped by [create-neon](https://www.npmjs.com/package/create-neon).

## Building {{package.name}}

Building {{package.name}} requires a [supported version of Node and Rust](https://github.com/neon-bindings/neon#platform-support).

You can build the project with npm. In the project directory, run:

```sh
$ npm install
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would call this installing and not building. Building can be documented as npm run build. In many cases, users will want to run npm run build instead of npm install because it will be more efficient. npm install needs to check the dependency tree and potentially install updates.

```

## Exploring {{package.name}}

After building {{package.name}}, you can explore its exports at the Node REPL:

```sh
$ npm install
$ node
> require('.').hello()
"hello node"
```

## Available Scripts

In the project directory, you can run:

### `npm install`

Builds the project from source.

### `npm test`

Runs the unit tests by calling `cargo test`. You can learn more about [adding tests to your Rust code](https://doc.rust-lang.org/book/ch11-01-writing-tests.html) from the [Rust book](https://doc.rust-lang.org/book/).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add npm run build? In this section, can you also explain what cargo-cp-artifact does?

## Project Layout

The directory structure of this project is:

```
{{package.name}}/
├── Cargo.toml
├── README.md
├── index.node
├── package.json
└── src
└── lib.rs
```

### Cargo.toml

The Cargo [manifest file](https://doc.rust-lang.org/cargo/reference/manifest.html), which informs the `cargo` command.

### README.md

This file.

### index.node

The binary module generated by building the project.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a bit explaining that this is a C dynamic shared library generated by cargo and that it's a copy of the file in target/?


### package.json

The npm [manifest file](https://docs.npmjs.com/cli/v7/configuring-npm/package-json), which informs the `npm` command.

### src/lib.rs

The Rust library's main module.

## Learn More

To learn more about Neon, see the [Neon documentation](https://neon-bindings.com).

To learn more about Rust, see the [Rust documentation](https://www.rust-lang.org).

To learn more about Node, see the [Node documentation](https://nodejs.org).