An open API service indexing awesome lists of open source software.

https://github.com/binhonglee/wings

A simple cross language struct and enum file generator.
https://github.com/binhonglee/wings

enum golang hacktoberfest hacktoberfest2020 kotlin nim-lang python struct typescript

Last synced: 9 months ago
JSON representation

A simple cross language struct and enum file generator.

Awesome Lists containing this project

README

          

# wings

A customizable cross language struct and enum file generator.

[![GitHub Action Status](https://github.com/binhonglee/wings/workflows/CI/badge.svg)](https://github.com/binhonglee/wings/actions?query=workflow%3ACI+branch%3Adevel)
[![CircleCI](https://circleci.com/gh/binhonglee/wings/tree/devel.svg?style=shield)](https://app.circleci.com/pipelines/github/binhonglee/wings?branch=devel)
[![codecov](https://codecov.io/gh/binhonglee/wings/branch/devel/graph/badge.svg)](https://codecov.io/gh/binhonglee/wings)
[![CodeFactor](https://www.codefactor.io/repository/github/binhonglee/wings/badge)](https://www.codefactor.io/repository/github/binhonglee/wings)
[![mergify](https://img.shields.io/endpoint.svg?url=https://gh.mergify.io/badges/binhonglee/wings)](https://github.com/binhonglee/wings/blob/devel/.mergify.yml)

[![Gitter](https://img.shields.io/gitter/room/binhonglee/wings.svg)](https://gitter.im/wings-sh/community)
[![Website](https://img.shields.io/website?url=https%3A%2F%2Fwings.sh)](https://wings.sh)

![GitHub all releases](https://img.shields.io/github/downloads/binhonglee/wings/total?label=GitHub%20release%20downloads)
![Visual Studio Marketplace Downloads](https://img.shields.io/visual-studio-marketplace/d/binhonglee.vscode-wings)
![npm](https://img.shields.io/npm/dt/wings-ts-util?label=npm%20downloads)

## Requirements

- [Nim](https://nim-lang.org/)
- [MkDocs](https://www.mkdocs.org/) (Documentation)

\*_Note: There are also other packages needed for deployment due to cross compilation (like `gcc-multilib`, `gcc-arm-linux-gnueabihf`, `mingw-w64`, `libevent-dev` etc...)._

## Development Tools (scripts)

- Run mkdocs development server for realtime feedback on changes made `docs` folder _(requires `mkdocs`)_
- `nim src/main/scripts/docs.nims`
- Build release binaries for distribution
- `nim src/main/scripts/release.nims` (This will only build the version compatible to your environment by default. You can do `nim src/main/scripts/release.nims --all` to try cross-compiling for other environments.)
- Generate / Update the `lang` folder [(`src/main/wingspkg/lang`)](https://github.com/binhonglee/wings/tree/devel/src/main/wingspkg/lang) based on the files in the [`examples/input/templates`](https://github.com/binhonglee/wings/tree/devel/examples/input/templates) folder
- `nim c -r -d:ssl src/main/staticlang/main.nim`
- Run tests
- `./scripts/test.sh` (This isn't a proper test for everything. Recommend reading the script, < 20 lines, before running it.)

For some more comprehensive set up / testing procedure, [`.github/workflows/main.yml`](https://github.com/binhonglee/wings/blob/devel/.github/workflows/main.yml) file might be a good place to start looking into.

## Supported languages

- [go](http://golang.org/)
- [Kotlin](https://kotlinlang.org)
- [Nim](https://nim-lang.org/)
- [Python](https://www.python.org/)
- [TypeScript](https://www.typescriptlang.org)
- [Utility package](https://github.com/binhonglee/wings/tree/devel/src/tsUtil)

## Further Documentations

- [Usage explanation and examples](https://wings.sh).
- [Code documentation](https://wings.sh/api).