{"id":31629334,"url":"https://github.com/socktainer/socktainer","last_synced_at":"2026-02-02T12:19:02.796Z","repository":{"id":308950268,"uuid":"1014370703","full_name":"socktainer/socktainer","owner":"socktainer","description":"Docker-compatible REST API on top of Apple container","archived":false,"fork":false,"pushed_at":"2026-01-29T20:01:46.000Z","size":239,"stargazers_count":136,"open_issues_count":20,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-30T08:57:15.495Z","etag":null,"topics":["apple-container","docker-api","hacktoberfest","swift"],"latest_commit_sha":null,"homepage":"https://socktainer.github.io/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/socktainer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-05T15:35:19.000Z","updated_at":"2026-01-29T20:00:50.000Z","dependencies_parsed_at":"2025-11-27T09:06:21.122Z","dependency_job_id":null,"html_url":"https://github.com/socktainer/socktainer","commit_stats":null,"previous_names":["benoitf/socktainer"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/socktainer/socktainer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socktainer%2Fsocktainer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socktainer%2Fsocktainer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socktainer%2Fsocktainer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socktainer%2Fsocktainer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/socktainer","download_url":"https://codeload.github.com/socktainer/socktainer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/socktainer%2Fsocktainer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29012396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T10:37:29.253Z","status":"ssl_error","status_checked_at":"2026-02-02T10:37:28.644Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple-container","docker-api","hacktoberfest","swift"],"created_at":"2025-10-06T21:01:27.111Z","updated_at":"2026-02-02T12:19:02.755Z","avatar_url":"https://github.com/socktainer.png","language":"Swift","funding_links":[],"categories":["Swift"],"sub_categories":[],"readme":"# Socktainer 🚢\n\n\u003e [!IMPORTANT]\n\u003e Both `socktainer` and [Apple container](https://github.com/apple/container) are still under heavy development!\n\n\u003e [!NOTE]\n\u003e `socktainer` maintains to be compatible with [Docker Engine API v1.51](https://github.com/moby/moby/blob/v28.5.2/api/swagger.yaml).\n\u003e\n\u003e Progress is tracked in [#14](https://github.com/socktainer/socktainer/issues/14) and [#90](https://github.com/socktainer/socktainer/issues/90).\n\n\u003c!--toc:start--\u003e\n\n- [Socktainer 🚢](#socktainer-🚢)\n  - [Quick Start ⚡](#quick-start)\n    - [Launch socktainer 🏁](#launch-socktainer-🏁)\n    - [Using Docker CLI 🐳](#using-docker-cli-🐳)\n  - [Key Features ✨](#key-features)\n  - [Requirements 📋](#requirements-📋)\n  - [Installation 🛠️](#installation-🛠️)\n    - [Homebrew](#homebrew)\n      - [Stable Release](#stable-release)\n      - [Pre Release](#pre-release)\n    - [GitHub Releases](#github-releases)\n  - [Usage 🚀](#usage-🚀)\n  - [Building from Source 🏗️](#building-from-source-🏗️)\n    - [Prerequisites](#prerequisites)\n    - [Build \u0026 Run](#build-run)\n    - [Testing ✅](#testing)\n  - [Contributing 🤝](#contributing-🤝)\n    - [Workflow](#workflow)\n    - [Developer Notes 🧑‍💻](#developer-notes-🧑‍💻)\n  - [Security \u0026 Limitations ⚠️](#security-limitations-️)\n  - [Community 💬](#community-💬)\n  - [License 📄](#license-📄)\n  - [Acknowledgements 🙏](#acknowledgements-🙏)\n  \u003c!--toc:end--\u003e\n\nSocktainer is a CLI/daemon that exposes a **Docker-compatible REST API** on top of Apple's containerization libraries 🍏📦.\n\nIt allows common Docker clients (like the Docker CLI) to interact with local containers on macOS using the Docker API surface 🐳💻.\n\n[**Podman Desktop Apple Container extension**](https://github.com/benoitf/extension-apple-container) uses socktainer to visualize Apple containers/images in [Podman Desktop](https://podman-desktop.io/).\n\n---\n\n## Quick Start ⚡\n\nGet started with socktainer CLI in just a few commands:\n\n### Launch socktainer 🏁\n\n```bash\n./socktainer\nFolderWatcher] Started watching $HOME/Library/Application Support/com.apple.container\n[ NOTICE ] Server started on http+unix: $HOME/.socktainer/container.sock\n...\n```\n\n### Using Docker CLI 🐳\n\nExport the socket path as `DOCKER_HOST`:\n\n```bash\nexport DOCKER_HOST=unix://$HOME/.socktainer/container.sock\ndocker ps        # List running containers\ndocker ps -a     # List all containers\ndocker images    # List available images\n```\n\nOr inline without exporting:\n\n```bash\nDOCKER_HOST=unix://$HOME/.socktainer/container.sock docker ps\nDOCKER_HOST=unix://$HOME/.socktainer/container.sock docker images\n```\n\n---\n\n## Key Features ✨\n\n- Built on **Apple’s Container Framework** 🍏\n- Provides **Docker REST API compatibility** 🔄 (partial)\n- Listens on a Unix domain socket `$HOME/.socktainer/container.sock`\n- Supports container lifecycle operations: inspect, stop, remove 🛠️\n- Supports image listing, pulling, deletion, logs, health checks. Exec without interactive mode 📄\n- Broadcasts container events for client liveness monitoring 📡\n\n---\n\n## Requirements 📋\n\n- **macOS 26 (Tahoe) on Apple Silicon (arm64)** Apple’s container APIs only work on arm64 Macs 🍏💻\n- **Apple Container 0.6.0**\n\n---\n\n## Installation 🛠️\n\n### Homebrew\n\n`socktainer` is shipped via a homebrew tap:\n\n```shell\nbrew tap socktainer/tap\n```\n\n#### Stable Release\n\nInstall the official release:\n\n```shell\nbrew install socktainer\n```\n\n#### Pre Release\n\nInstall development release:\n\n```shell\nbrew install socktainer-next\n```\n\n### GitHub Releases\n\nDownload from socktainer [releases](https://github.com/socktainer/socktainer/releases) page the zip or binary. Ensure the binary has execute permissions (`+x`) before running it.\n\n---\n\n## Usage 🚀\n\nRefer to **Quick Start** above for immediate usage examples.\n\n---\n\n## Building from Source 🏗️\n\n### Prerequisites\n\n- **Swift 6.2** (requirements from Apple container)\n- **Xcode 26** (select the correct toolchain if installed in a custom location)\n\n```bash\nsudo xcode-select --switch /Applications/Xcode_26.0.0.app/Contents/Developer\n# or\nsudo xcode-select -s /Applications/Xcode-26.app/Contents/Developer\n```\n\n### Build \u0026 Run\n\n1. Build the project:\n\n```bash\nmake\n```\n\n2. (Optional) Format the code:\n\n```bash\nmake fmt\n```\n\n3. Run the debug binary:\n\n```bash\n.build/arm64-apple-macosx/debug/socktainer\n```\n\n\u003e The server will create the socket at `$HOME/.socktainer/container.sock`.\n\n### Testing ✅\n\nRun unit tests:\n\n```bash\nmake test\n```\n\n---\n\n## Contributing 🤝\n\nWe welcome contributions!\n\n### Workflow\n\n1. Fork the repository and create a feature branch 🌿\n2. Open a PR against `main` with a clear description 📝\n3. Add or update tests for new behavior (see `Tests/socktainerTests`) ✔️\n4. Keep changes small and focused. Document API or behavioral changes in the PR description 📚\n\n### Developer Notes 🧑‍💻\n\n- Code organization under `Sources/socktainer/`:\n  - `Routes/` — Route handlers 🛣️\n  - `Clients/` — Client integrations 🔌\n  - `Utilities/` — Helper utilities 🧰\n- Document any public API or CLI changes in this README 📝\n\n---\n\n## Security \u0026 Limitations ⚠️\n\n- Intended for **local development and experimentation** 🏠\n- Running third-party container workloads carries inherent risks. Review sandboxing and container configurations 🔒\n- Docker API compatibility is **partial**, focused on commonly used endpoints. See `Sources/socktainer/Routes/` for implemented routes\n\n---\n\n## Community 💬\n\nJoin the Socktainer community to ask questions, share ideas, or get help:\n\n- **Discord**: [discord.gg/Pw9VWKcUEt](https://discord.gg/Pw9VWKcUEt) – chat in real time with contributors and users\n- **GitHub Discussions**: [socktainer/discussions](https://github.com/socktainer/socktainer/discussions) – ask questions or propose features\n- **GitHub Issues**: [socktainer/issues](https://github.com/socktainer/socktainer/issues) – report bugs or request features\n\n## License 📄\n\nSee the `LICENSE` file in the repository root.\n\n---\n\n## Acknowledgements 🙏\n\n- Built using **Apple containerization libraries** 🍏\n- Enables Docker CLI and other Docker clients to interact with local macOS containers 🐳💻\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsocktainer%2Fsocktainer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsocktainer%2Fsocktainer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsocktainer%2Fsocktainer/lists"}