# Package `cargo_tsgen`
Additional code generation tools for tree-sitter
[](https://opensource.org/licenses/Apache-2.0)
[](https://opensource.org/license/mit)
[](<https://github.com/johnstonskj/rust-cargo-tsgen/actions/workflows/rust.yml>)
[](<https://github.com/johnstonskj/rust-cargo-tsgen/actions/workflows/security-audit.yml>)
[](<https://codecov.io/github/johnstonskj/rust-cargo-tsgen>)
[](https://crates.io/crates/cargo_tsgen)
[](https://docs.rs/cargo_tsgen)
[](<https://github.com/johnstonskj/rust-cargo-tsgen/stargazers>)
Add a longer description here.
## Example
TBD
```bash
❱ cargo tsgen --help
his command can generate additional, type-safe, features for tree-sitter bindings.
Usage: cargo-tsgen [OPTIONS] <COMMAND>
Commands:
constants Create a constants file from node-types.json
wrapper Create a type-safe wrapper around the tree-sitter CST using grammar.json
completions Generate shell completions
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose...
Increase logging verbosity
-q, --quiet...
Decrease logging verbosity
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
```
- **constants**; this reads the tree-sitter generated file `src/node-types.json` and writes out a
language-specific file containing constants for all node and field names.
- **wrapper**; this reads the tree-sitter generated file `src/grammar.json` and writes out a
language-specific file containing `Node` wrappers for the grammar.
- **completions**; write out shell completions for the tool itself.
## Features
| *default* | std, | Package default features. |
| std | alloc | Enables the `std` library crate, the most common default. |
| alloc | | Enables the `alloc` library crate, required in a `no_std` environment. |
## License(s)
The contents of this repository are made available under the following
licenses:
### Apache-2.0
> ```text
> Copyright 2025 Simon Johnston <johnstonskj@gmail.com>
>
> Licensed under the Apache License, Version 2.0 (the "License");
> you may not use this file except in compliance with the License.
> You may obtain a copy of the License at
>
> http://www.apache.org/licenses/LICENSE-2.0
>
> Unless required by applicable law or agreed to in writing, software
> distributed under the License is distributed on an "AS IS" BASIS,
> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> See the License for the specific language governing permissions and
> limitations under the License.
> ```
See the enclosed file [LICENSE-Apache](https://github.com/johnstonskj/rust-cargo-tsgen/blob/main/LICENSE-Apache).
### MIT
> ```text
> Copyright 2025 Simon Johnston <johnstonskj@gmail.com>
>
> Permission is hereby granted, free of charge, to any person obtaining a copy
> of this software and associated documentation files (the “Software”), to deal
> in the Software without restriction, including without limitation the rights to
> use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
> the Software, and to permit persons to whom the Software is furnished to do so,
> subject to the following conditions:
>
> The above copyright notice and this permission notice shall be included in all
> copies or substantial portions of the Software.
>
> THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
> INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
> PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
> HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
> OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
> ```
See the enclosed file [LICENSE-MIT](https://github.com/johnstonskj/rust-cargo-tsgen/blob/main/LICENSE-MIT).
## Contributions
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall
be dual licensed as above, without any additional terms or conditions.
For information on contributing to this project, see the following.
1. Project [Code of Conduct](https://github.com/johnstonskj/rust-cargo-tsgen/blob/main/CODE_OF_CONDUCT.md).
1. Project [Contribution Guidelines](https://github.com/johnstonskj/rust-cargo-tsgen/blob/main/CONTRIBUTING.md).
1. Project [TODO Items](<https://github.com/johnstonskj/rust-cargo-tsgen/issues>) in Issues.
1. Repository [Change Log](https://github.com/johnstonskj/rust-cargo-tsgen/blob/main/CHANGELOG.md).