zwasm-sdk 0.1.0

A safe and ergonomic Rust binding for the zwasm WebAssembly runtime, supporting Wasm 3.0, WASI, and host function imports.

# Contributing to zwasm-rust-sdk

Thank you for your interest in contributing to zwasm-rust-sdk!

This repository contains multiple crates, including low-level FFI bindings (zwasm-sys) and potentially higher-level libraries or tools.
We welcome bug reports, feature requests, documentation improvements, and pull requests for any part of this project.

## Development Setup

This project requires **Zig 0.16.0** to build the underlying `zwasm` library.

1. **Clone the repository with submodules:**
   ```bash
   git clone --recursive [https://github.com/jtakakura/zwasm-rust-sdk.git](https://github.com/jtakakura/zwasm-rust-sdk.git)
   ```
   If you've already cloned without submodules, run:
   ```
   git submodule update --init --recursive
   ```

2. **Install Zig:**

   Ensure zig (version 0.16.0) is in your PATH.

## How to Contribute

- **Bug Reports & Feature Requests:**
  - Please open an issue on GitHub with a clear description and, if possible, steps to reproduce.
  - For feature requests, describe your use case and proposed solution.

- **Pull Requests:**
  - Fork the repository and create your branch from `main`.
  - Add tests for new features or bug fixes when possible.
  - Ensure your code passes `cargo test` and builds without warnings.
  - Update documentation and README as needed.
  - Open a pull request with a clear description of your changes.

- **Code Style:**
  - Follow standard Rust formatting (`cargo fmt`).
  - Use clear, descriptive commit messages.
  - Keep changes focused and minimal per pull request.

- **Discussion:**
  - For major changes or design discussions, please open an issue first to discuss your ideas.


## Project Scope

- The repository provides Rust bindings and tools for the zwasm WebAssembly runtime.
- The `zwasm-sys` crate offers low-level, unsafe FFI bindings to the zwasm C API.
- Safe wrappers, high-level APIs, or SDKs should be developed in separate crates within this repository or as external projects.
- Platform support is currently limited to Unix-like systems (Linux, macOS).


## License

By contributing, you agree that your contributions will be licensed under the MIT License (for Rust code), and you must also comply with the license of the zwasm C library and any other relevant components.

---

If you have any questions, feel free to open an issue or start a discussion on GitHub.