Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/desktop/registry-js
A simple and opinionated library for working with the Windows registry
https://github.com/desktop/registry-js
nodejs registry typescript windows
Last synced: 4 days ago
JSON representation
A simple and opinionated library for working with the Windows registry
- Host: GitHub
- URL: https://github.com/desktop/registry-js
- Owner: desktop
- License: mit
- Created: 2017-11-18T00:03:25.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-03-05T15:45:41.000Z (11 months ago)
- Last Synced: 2024-05-18T00:41:34.783Z (9 months ago)
- Topics: nodejs, registry, typescript, windows
- Language: C++
- Homepage:
- Size: 4.68 MB
- Stars: 151
- Watchers: 16
- Forks: 46
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - registry-js
README
# registry-js
## A simple and opinionated library for working with the Windows registry
## Goals
* zero dependencies
* faster than `reg.exe`
* implement based on usage - don't replicate the registry API
* leverage TypeScript declarations wherever possible**Note:** This is currently in preview, with support for features that GitHub
Desktop and Atom require.## Install
```shellsession
$ npm install --save registry-js
# or
$ yarn add registry-js
```## But Why?
The current set of libraries for interacting with the registry have some
limitations that meant we couldn't use it in GitHub Desktop:* [`windows-registry`](https://www.npmjs.com/package/windows-registry) depends
on `ffi` at runtime, which caused issues with webpack-ing, and was missing
APIs we needed.
* [`winreg`](https://www.npmjs.com/package/winreg) depends on
`reg.exe` which breaks as soon as you enable "Prevent access to registry
editing tools" Group Policy rules (yes, even `QUERY` operations are caught by
this). More details about this can be found in
[desktop/desktop#3105](https://github.com/desktop/desktop/issues/3105).After exploring other options like invoking PowerShell - which was too slow - we
decided to write our own little library to do the stuff we require by invoking
the Win32 APIs directly.## Documentation
See the documentation under the
[`docs`](https://github.com/desktop/registry-js/tree/master/docs) folder.## Supported versions
Each release of `registry-js` includes prebuilt binaries for the versions of
Node and Electron that are actively supported by these projects. Please refer
to the release documentation for [Node](https://github.com/nodejs/Release) and
[Electron](https://electronjs.org/docs/tutorial/support) to see what is
supported currently.## Contributing
Read the [Setup](https://github.com/desktop/registry-js/blob/master/docs/index.md#setup)
section to ensure your development environment is setup for what you need.This project isn't about implementing a 1-1 replication of the Windows registry
API, but implementing just enough for whatever usages there are in the wild.If you want to see something supported, open an issue to start a discussion
about it.