{"id":22402772,"url":"https://github.com/open-space-collective/open-space-toolkit-io","last_synced_at":"2025-07-31T16:31:19.214Z","repository":{"id":33112729,"uuid":"136835008","full_name":"open-space-collective/open-space-toolkit-io","owner":"open-space-collective","description":"Addressing, networking, database connectors.","archived":false,"fork":false,"pushed_at":"2024-10-22T22:52:35.000Z","size":3940,"stargazers_count":16,"open_issues_count":3,"forks_count":4,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-11-23T02:39:01.458Z","etag":null,"topics":["cpp","engineering","io","python","space","toolkit"],"latest_commit_sha":null,"homepage":"https://open-space-collective.github.io/open-space-toolkit-io/","language":"C++","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/open-space-collective.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2018-06-10T18:37:02.000Z","updated_at":"2024-11-19T08:07:18.000Z","dependencies_parsed_at":"2023-11-21T22:24:57.345Z","dependency_job_id":"e2eee155-f3a7-4a45-a944-cb9b2134df31","html_url":"https://github.com/open-space-collective/open-space-toolkit-io","commit_stats":{"total_commits":101,"total_committers":4,"mean_commits":25.25,"dds":0.1188118811881188,"last_synced_commit":"c0f4510cce7af09e6d432a23c18d7610122ede80"},"previous_names":[],"tags_count":43,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-space-collective%2Fopen-space-toolkit-io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-space-collective%2Fopen-space-toolkit-io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-space-collective%2Fopen-space-toolkit-io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/open-space-collective%2Fopen-space-toolkit-io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/open-space-collective","download_url":"https://codeload.github.com/open-space-collective/open-space-toolkit-io/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228267835,"owners_count":17893841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cpp","engineering","io","python","space","toolkit"],"created_at":"2024-12-05T09:14:17.970Z","updated_at":"2024-12-05T09:14:18.672Z","avatar_url":"https://github.com/open-space-collective.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Open Space Toolkit ▸ I/O\n\n[![Build and Test](https://github.com/open-space-collective/open-space-toolkit-io/actions/workflows/build-test.yml/badge.svg?branch=main)](https://github.com/open-space-collective/open-space-toolkit-io/actions/workflows/build-test.yml)\n[![Release](https://github.com/open-space-collective/open-space-toolkit-io/actions/workflows/release.yml/badge.svg)](https://github.com/open-space-collective/open-space-toolkit-io/actions/workflows/release.yml)\n[![Code Coverage](https://codecov.io/gh/open-space-collective/open-space-toolkit-io/branch/main/graph/badge.svg)](https://codecov.io/gh/open-space-collective/open-space-toolkit-io)\n[![Documentation](https://img.shields.io/readthedocs/pip/stable.svg)](https://open-space-collective.github.io/open-space-toolkit-io)\n[![GitHub version](https://badge.fury.io/gh/open-space-collective%2Fopen-space-toolkit-io.svg)](https://badge.fury.io/gh/open-space-collective%2Fopen-space-toolkit-io)\n[![PyPI version](https://badge.fury.io/py/open-space-toolkit-io.svg)](https://badge.fury.io/py/open-space-toolkit-io)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nAddressing, networking, database connectors.\n\n## Getting Started\n\nWant to get started? This is the simplest and quickest way:\n\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-space-collective/open-space-toolkit/main?urlpath=lab/tree/notebooks)\n\n*Nothing to download or install! This will automatically start a [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) environment in your browser with Open Space Toolkit libraries and example notebooks ready to use.*\n\n### Alternatives\n\n#### Docker Images\n\n[Docker](https://www.docker.com/) must be installed on your system.\n\n##### iPython\n\nThe following command will start an [iPython](https://ipython.org/) shell within a container where the OSTk components are already installed:\n\n```bash\ndocker run -it openspacecollective/open-space-toolkit-io-development python3.11 -m IPython\n```\n\nOnce the shell is up and running, playing with it is easy:\n\n```py\nfrom ostk.io import URL # URL class\nfrom ostk.io.ip.tcp.http import Client # HTTP client class\n\nurl = URL.parse(\"https://www.google.com\") # Construct a URL\n\nresponse = Client.get(url) # Send an HTTP GET request (over HTTPS)\n\nresponse.get_status_code() # Display the status code of the HTTP response\n```\n\n*Tip: Use tab for auto-completion!*\n\n##### JupyterLab\n\nThe following command will start a [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) server within a container where the OSTk components are already installed:\n\n```bash\ndocker run --publish=8888:8888 openspacecollective/open-space-toolkit-io-jupyter\n```\n\nOnce the container is running, access [http://localhost:8888/lab](http://localhost:8888/lab) and create a Python 3 Notebook.\n\n## Installation\n\n### C++\n\nThe binary packages are hosted using [GitHub Releases](https://github.com/open-space-collective/open-space-toolkit-io/releases):\n\n- Runtime libraries: `open-space-toolkit-io-X.Y.Z-1.x86_64-runtime`\n- C++ headers: `open-space-toolkit-io-X.Y.Z-1.x86_64-devel`\n- Python bindings: `open-space-toolkit-io-X.Y.Z-1.x86_64-python`\n\n#### Debian / Ubuntu\n\nAfter downloading the relevant `.deb` binary packages, install:\n\n```bash\napt install open-space-toolkit-io-*.deb\n```\n\n### Python\n\nInstall from [PyPI](https://pypi.org/project/open-space-toolkit-io/):\n\n```bash\npip install open-space-toolkit-io\n```\n\n## Documentation\n\nDocumentation is available here:\n\n- [C++](https://open-space-collective.github.io/open-space-toolkit-io)\n- [Python](./bindings/python/docs)\n\n\u003cdetails\u003e\n\u003csummary\u003eStructure\u003c/summary\u003e\n\u003cp\u003e\n\nThe library exhibits the following structure:\n\n```txt\n├── IP\n│   ├── Address\n│   └── TCP\n│       ├── Client\n│       ├── Server\n│       └── HTTP\n│           ├── Client\n│           └── Server\n└── URL\n    └── Query\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n## Tutorials\n\nTutorials are available here:\n\n- [C++](./tutorials/cpp)\n- [Python](./tutorials/python)\n\n## Setup\n\n### Development Environment\n\nUsing [Docker](https://www.docker.com) for development is recommended, to simplify the installation of the necessary build tools and dependencies.\nInstructions on how to install Docker are available [here](https://docs.docker.com/install/).\n\nTo start the development environment:\n\n```bash\nmake start-development\n```\n\nThis will:\n\n1. Build the `openspacecollective/open-space-toolkit-io-development` Docker image.\n2. Create a development environment container with local source files and helper scripts mounted.\n3. Start a `bash` shell from the `./build` working directory.\n\nIf installing Docker is not an option, you can manually install the development tools (GCC, CMake) and all required dependencies,\nby following a procedure similar to the one described in the [Development Dockerfile](./docker/development/Dockerfile).\n\n### Build\n\nFrom the `./build` directory:\n\n```bash\ncmake ..\nmake\n```\n\n*Tip: `ostk-build` simplifies building from within the development environment.*\n\n### Test\n\nTo start a container to build and run the tests:\n\n```bash\nmake test\n```\n\nOr to run them manually:\n\n```bash\n./bin/open-space-toolkit-io.test\n```\n\n*Tip: `ostk-test` simplifies running tests from within the development environment.*\n\n## Dependencies\n\n| Name                | Version  | License            | Link                                                                                                                         |\n| ------------------- | -------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------- |\n| Pybind11            | `2.12.0` | BSD-3-Clause       | [github.com/pybind/pybind11](https://github.com/pybind/pybind11)                                                             |\n| {fmt}               | `5.2.0`  | BSD-2-Clause       | [github.com/fmtlib/fmt](https://github.com/fmtlib/fmt)                                                                       |\n| Core                | `main`   | Apache License 2.0 | [github.com/open-space-collective/open-space-toolkit-core](https://github.com/open-space-collective/open-space-toolkit-core) |\n\n## Contribution\n\nContributions are more than welcome!\n\nPlease read our [contributing guide](CONTRIBUTING.md) to learn about our development process, how to propose fixes and improvements, and how to build and test the code.\n\n## Special Thanks\n\n[![Loft Orbital](https://github.com/open-space-collective/open-space-toolkit/blob/main/assets/thanks/loft_orbital.png)](https://www.loftorbital.com/)\n\n## License\n\nApache License 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-space-collective%2Fopen-space-toolkit-io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopen-space-collective%2Fopen-space-toolkit-io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopen-space-collective%2Fopen-space-toolkit-io/lists"}