diff --git a/README.md b/README.md index 91ee196..242879b 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ Org-level GitHub configuration: the **reusable workflows** every LabelZoom repo's CI calls, plus the community health files that inherit across the org. -This repo is **public**, and that is load-bearing, not an oversight. `labelzoom-api` and -`labelzoom-zpl-sdk` are public repos, and **a public repo cannot call a reusable workflow -from a private one.** No setting changes that. Nothing secret lives here: workflow YAML, -secret *names*, toolchain versions and action SHAs are all public by design. Secret -*values* never are. +This repo is **public**, and that is load-bearing, not an oversight. Several org repos are +public — `labelzoom-sdk`, `labelzoom-mcp` and `labelzoom-n8n-node` among them — and **a +public repo cannot call a reusable workflow from a private one.** No setting changes that. +Nothing secret lives here: workflow YAML, secret *names*, toolchain versions and action +SHAs are all public by design. Secret *values* never are. ## The doubled path diff --git a/profile/README.md b/profile/README.md index b8cde3b..2186358 100644 --- a/profile/README.md +++ b/profile/README.md @@ -2,21 +2,82 @@ # LabelZoom -Barcode label conversion and design. Convert ZPL, EPL, DPL, TSPL and PDF between formats, +Barcode label conversion and design. Convert ZPL, EPL, TSPL, DPL and PDF between formats, render labels to images, and design them in the browser — at **[labelzoom.com](https://www.labelzoom.com)**. -## Open source +The conversion API takes 13 source formats (`zpl` `epl` `tspl` `dpl` `xml` `json` `pdf` +`png` `bmp` `gif` `jpg` `jpeg` `url`) to 11 targets (the same list minus `jpg`, which +normalizes to `jpeg`, and `url`, which is a fetch instruction rather than a format). +**An API key is optional** — every client works anonymously against the free tier. + +## Client SDKs + +[**labelzoom-sdk**](https://github.com/labelzoom/labelzoom-sdk) is one repo publishing +eight packages that behave identically on the wire. They share a written contract +([`docs/API_CONTRACT.md`](https://github.com/labelzoom/labelzoom-sdk/blob/main/docs/API_CONTRACT.md)) +and a language-neutral conformance suite of 83 fixtures that every SDK's tests execute, so +"works in Python" and "works in Rust" mean the same thing. + +| Language | Package | Install | +|---|---|---| +| .NET | [`LabelZoom.Sdk`](https://www.nuget.org/packages/LabelZoom.Sdk) | `dotnet add package LabelZoom.Sdk` | +| Node | [`@labelzoom/sdk`](https://www.npmjs.com/package/@labelzoom/sdk) | `npm install @labelzoom/sdk` | +| Java | [`com.labelzoom:labelzoom-sdk`](https://central.sonatype.com/artifact/com.labelzoom/labelzoom-sdk) | Maven Central | +| Python | [`labelzoom-sdk`](https://pypi.org/project/labelzoom-sdk/) | `pip install labelzoom-sdk` | +| PHP | [`labelzoom/sdk`](https://packagist.org/packages/labelzoom/sdk) | `composer require labelzoom/sdk` | +| Go | [`labelzoom-sdk/go`](https://pkg.go.dev/github.com/labelzoom/labelzoom-sdk/go) | `go get github.com/labelzoom/labelzoom-sdk/go` | +| Ruby | [`labelzoom`](https://rubygems.org/gems/labelzoom) | `gem install labelzoom` | +| Rust | [`labelzoom`](https://crates.io/crates/labelzoom) | `cargo add labelzoom` | + +[**labelzoom-sdk-php**](https://github.com/labelzoom/labelzoom-sdk-php) is a read-only +mirror of the PHP SDK, published because Packagist reads `composer.json` from a repository +root. File issues and PRs against +[labelzoom-sdk](https://github.com/labelzoom/labelzoom-sdk), not the mirror. + +## Integrations + +| | | +|---|---| +| [labelzoom-mcp](https://github.com/labelzoom/labelzoom-mcp) | An [MCP](https://modelcontextprotocol.io) server that lets an AI assistant convert a label and **render it to an image and look at it** — so it can check that ZPL produces the label you meant instead of reasoning about the source blind | +| [labelzoom-n8n-node](https://github.com/labelzoom/labelzoom-n8n-node) | [n8n](https://n8n.io) community node — convert labels between formats inside a workflow | + +Both are on `0.1.0` and not yet published to npm; build them from source for now. + +## Scripts and utilities | | | |---|---| -| [labelzoom-api](https://github.com/labelzoom/labelzoom-api) | The label data model and the `LabelReader` / `LabelWriter` contracts every format adapter implements | -| [labelzoom-sdk](https://github.com/labelzoom/labelzoom-sdk) | Client SDK for the LabelZoom conversion API | +| [python-zpl-utils](https://github.com/labelzoom/python-zpl-utils) | Standalone Python scripts: PDF→ZPL, PNG→ZPL, and send-ZPL-to-a-printer | +| [groovy-zpl-utils](https://github.com/labelzoom/groovy-zpl-utils) | The same idea in Groovy: PNG→ZPL and send-ZPL-to-a-printer. No dependencies | + +Both are copy-and-run scripts rather than published packages — useful when you want one +conversion and not a dependency. + +## MOCA clients + +Clients for MOCA, the query language and server protocol used by Blue Yonder (formerly JDA +/ RedPrairie) warehouse management systems. Sponsored by LabelZoom, BSD-3-Clause, and +independent of the label platform. + +| | | +|---|---| +| [labelzoom-moca-client-java](https://github.com/labelzoom/labelzoom-moca-client-java) | `com.labelzoom:labelzoom-moca-client-java` — published to GitHub Packages | +| [labelzoom-moca-client-dotnet](https://github.com/labelzoom/labelzoom-moca-client-dotnet) | [`LabelZoom.MocaClient`](https://www.nuget.org/packages/LabelZoom.MocaClient) on NuGet (`netstandard2.0`) | + +## Org configuration + +[**.github**](https://github.com/labelzoom/.github) holds the reusable GitHub Actions +workflows every LabelZoom repo's CI calls, the workflow templates, and the community +health files that inherit org-wide — including this page. Consumers pin `@v1`, a moving +tag advanced only by an explicit release step. ## Docs and API - **Documentation:** [docs.labelzoom.com](https://docs.labelzoom.com) - **API:** [labelzoom.com/api](https://www.labelzoom.com/api) +- **Try it in the browser:** [web app](https://www.labelzoom.com/app/) · + [label designer](https://www.labelzoom.com/designer) ## Security