UNPKG

qrcode-rs

Version:

A simple library that generates a qrcode in javascript

97 lines (66 loc) 4.02 kB
# qrcode-rs **qrcode-rs:** A simple library that generates a QR code in JavaScript using Rust This project was bootstrapped by [create-neon](https://www.npmjs.com/package/create-neon). ## Building qrcode-rs Building qrcode-rs requires a [supported version of Node and Rust](https://github.com/neon-bindings/neon#platform-support). To run the build, run: ```sh $ npm run build ``` This command uses the [@neon-rs/cli](https://www.npmjs.com/package/@neon-rs/cli) utility to assemble the binary Node addon from the output of `cargo`. ## Using qrcode-rs After installing qrcode-rs, you can use it in your JavaScript/TypeScript code: ```js import fs from 'fs' import { generateQRCode } from 'qrcode-rs' const data = 'https://github.com/KingTimer12/qrcode-rs' console.log('Generating QR code for:', data) const { qrcode } = generateQRCode(data) console.log('QR code generated successfully') fs.writeFileSync('qrcode.png', qrcode) console.log('QR code generated and saved as qrcode.png') ``` ## Available Scripts In the project directory, you can run: #### `npm install` Installs the project, including running `npm run build`. #### `npm run build` Builds the Node addon (`index.node`) from source, generating a release build with `cargo --release`. Additional [`cargo build`](https://doc.rust-lang.org/cargo/commands/cargo-build.html) arguments may be passed to `npm run build` and similar commands. For example, to enable a [cargo feature](https://doc.rust-lang.org/cargo/reference/features.html): ``` npm run build -- --feature=beetle ``` #### `npm run debug` Similar to `npm run build` but generates a debug build with `cargo`. #### `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/). ## Project Layout The directory structure of this project is: ``` qrcode-rs/ ├── Cargo.toml ├── README.md ├── native/ | └── lib.rs ├── lib/ | └── index.ts ├── index.node ├── package.json └── target/ ``` | Entry | Purpose | |----------------|------------------------------------------------------------------------------------------------------------------------------------------| | `Cargo.toml` | The Cargo [manifest file](https://doc.rust-lang.org/cargo/reference/manifest.html), which informs the `cargo` command. | | `README.md` | This file. | | `native/` | The directory containing the Rust source code for the project. | | `native/lib.rs`| Entry point for the Rust source code. | | `lib/` | The directory containing the TypeScript source code. | | `lib/index.ts` | Entry point for the TypeScript code. | | `index.node` | The main module, a [Node addon](https://nodejs.org/api/addons.html) generated by the build and pointed to by `"main"` in `package.json`. | | `package.json` | The npm [manifest file](https://docs.npmjs.com/cli/v7/configuring-npm/package-json), which informs the `npm` command. | | `target/` | Binary artifacts generated by the Rust build. | ## Learn More Learn more about: - [Neon](https://neon-bindings.com). - [Rust](https://www.rust-lang.org). - [Node](https://nodejs.org).