Metadata-Version: 2.4
Name: metastringedit
Version: 0.1.2
Summary: Unity global-metadata.dat stringliteral editor with Go backend and Python bindings
Project-URL: Homepage, https://github.com/MiddleRed/meta-string-edit
Project-URL: Repository, https://github.com/MiddleRed/meta-string-edit
Project-URL: Issues, https://github.com/MiddleRed/meta-string-edit/issues
Author: MiddleRed
License: MIT
License-File: LICENSE
Keywords: game-modding,il2cpp,metadata,reverse-engineering,unity
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Go
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Provides-Extra: dev
Requires-Dist: hatchling>=1.27.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=8.4.2; extra == 'dev'
Requires-Dist: ruff>=0.15.0; extra == 'dev'
Description-Content-Type: text/markdown

# Meta String Editor

A simple editor for Unity IL2CPP `global-metadata.dat` files, allowing you to inspect and modify string literals.

Available as both a Go library/CLI and Python binding package, making it easy to cross platform and integrate with Python scripts.

## Quick Start

### Use CLI

You can download the pre-built executable in [GitHub Release](https://github.com/MiddleRed/meta-string-edit/releases), or use the wrapped library distributed along with Python package.

```bash
pip install metastringedit
```

Usage

```bash
> ./metastringedit
Usage:
  metastringedit <file_path> [flags]

Flags:
  -d, --dump               Dump all strings to JSON
  -e, --edit stringArray   Edit strings (format: nth=value, can input multiple pairs)
  -h, --help               help for metastringedit
  -i, --info               Show metadata file information (default)
  -l, --list string        List strings:
                           - [page:num] for pagination, e.g. 0:20
                           - [nth] for single string, e.g. 3
                           - [start-end] for range, e.g. 1-20
  -o, --output string      Output file path
  -r, --regex string       Search for strings using regex
  -s, --search string      Search for strings (case-insensitive substring)
```

### As Library

See [examples](./examples/).

## Development

**Requirements:**
- Python 3.9+
- Go 1.17+

### Building
Go CLI
```bash
cd cli && go build .
```

Python wheel
```bash
uv build
```

### Running Tests
Go
```bash
go test -v
```

Python
```bash
# Build shared library first. Here is Linux example
cd binding && go build -o metastringedit.so -buildmode=c-shared . && cd ..

uv sync --extra dev --no-install-project
pytest
```

## Acknowledgments

https://github.com/Perfare/Il2CppDumper  
https://github.com/JeremieCHN/MetaDataStringEditor  
GitHub Copilot  

# License

MIT
