https://github.com/mjblack/winmd
Crystal Windows Metadata bindings generator
https://github.com/mjblack/winmd
crystal crystal-lang shard win32 win32api winmd
Last synced: 13 days ago
JSON representation
Crystal Windows Metadata bindings generator
- Host: GitHub
- URL: https://github.com/mjblack/winmd
- Owner: mjblack
- License: mit
- Created: 2024-10-20T19:43:02.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2026-03-26T02:44:51.000Z (3 months ago)
- Last Synced: 2026-03-26T23:54:25.691Z (3 months ago)
- Topics: crystal, crystal-lang, shard, win32, win32api, winmd
- Language: Crystal
- Homepage:
- Size: 62.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# winmd
Win32 API metadata bindings generator.
The generator supports:
- JSON metadata input (win32json-style)
- Native `.winmd` input via [`ecma335`](../README.md)
## Installation
1. Add the dependency to your `shard.yml`:
```yaml
dependencies:
winmd:
github: mjblack/winmd
```
2. Run `shards install`
## Usage
Run the command `bin\winmd.exe` from the shard itself or from your own shard.
Fetch `Windows.Win32.winmd` (uses the version pinned in `winmd.version`):
```bash
pwsh ./scripts/fetch-winmd.ps1
```
Override the version or output path:
```bash
pwsh ./scripts/fetch-winmd.ps1 -Version 70.0.11-preview
pwsh ./scripts/fetch-winmd.ps1 -OutputPath winmd/Windows.Win32.winmd
```
Examples:
```bash
# Existing JSON-based flow
bin/winmd generate ./path/to/json ./out
# Native WinMD flow (new)
bin/winmd generate --source-format winmd ./winmd/Windows.Win32.winmd ./out
```
## Contributing
1. Fork it ()
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
## Contributors
- [Matthew J. Black](https://github.com/mjblack) - creator and maintainer