{"id":21810047,"url":"https://github.com/mdmfernandes/socad","last_synced_at":"2025-07-20T07:31:05.787Z","repository":{"id":200065484,"uuid":"150485036","full_name":"mdmfernandes/socad","owner":"mdmfernandes","description":"Connect Cadence Virtuoso to a Python client using sockets.","archived":false,"fork":false,"pushed_at":"2020-08-27T14:05:36.000Z","size":126,"stargazers_count":16,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-10-15T15:51:08.162Z","etag":null,"topics":["cadence-client","cadence-virtuoso","python","socket-communication"],"latest_commit_sha":null,"homepage":"https://socad.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mdmfernandes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-09-26T20:18:01.000Z","updated_at":"2023-10-15T15:51:09.218Z","dependencies_parsed_at":null,"dependency_job_id":"8aa46758-20a4-4edc-a7c1-96b0db0e7ec9","html_url":"https://github.com/mdmfernandes/socad","commit_stats":null,"previous_names":["mdmfernandes/socad"],"tags_count":1,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdmfernandes%2Fsocad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdmfernandes%2Fsocad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdmfernandes%2Fsocad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdmfernandes%2Fsocad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdmfernandes","download_url":"https://codeload.github.com/mdmfernandes/socad/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226757050,"owners_count":17677067,"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":["cadence-client","cadence-virtuoso","python","socket-communication"],"created_at":"2024-11-27T13:30:19.922Z","updated_at":"2024-11-27T13:30:20.730Z","avatar_url":"https://github.com/mdmfernandes.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SOCAD\n\nClient: [![Python -V client](https://img.shields.io/badge/python-3.6%2B-blue.svg)](https://www.python.org/downloads/release/python-360/)\nServer: [![Python -V server](https://img.shields.io/badge/python-2.6%2B-blue.svg)](https://www.python.org/downloads/release/python-260/) [![Documentation Status](https://readthedocs.org/projects/socad/badge/?version=latest)](https://socad.readthedocs.io/en/latest/?badge=latest)\n[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://github.com/mdmfernandes/socad/blob/master/LICENSE)\n\n## This project is no longer maintained, as I no longer have access to Cadence Virtuoso. If you are interested in contributing and have any questions, feel free to contact me.\n\n**SOCAD** connects Cadence Virtuoso to a Python client. The communication between both processes is made through a server, using the following mechanisms:\n\n* **Cadence\u003c-\u003eServer**: Inter-process communication (IPC). The server is invoked by Cadence and waits for a client communication.\n* **Client\u003c-\u003eServer**: Sockets (more info [here](https://docs.python.org/3/library/socket.html)). Both processes can be run on the same machine or on different machines, according to the socket type chosen by the user. TCP sockets are used by default.\n\nBy using this library it is possible to control the Cadence environment from an external program.\n\n## Installation\n\nThe installation needs to be performed both in the **client** and the **server**. We recommend you to use *pip* to install SOCAD in your system.\n\n### Install with *pip*\n\nAlthough the project is not in PyPI, you can install it using *pip*. Go to the project folder and run:\n\n```shell\npip install .\n```\n\n**NOTE:** run `pip install socad` from the project directory doesn't work because pip will look for the package on PyPi.\n\n### Build from source\n\nGo to the project folder and run:\n\n```shell\npython setup.py install\n```\n\n### Use as local module\n\nIf the Cadence machine does not allow to install the **socad** package from the methods above, the module is loaded from `examples/socad_cadence/server.py`.\n\n## Usage\n\nImport the *Client* or the *Server* to your program using:\n\n```python\nfrom socad import Client\nfrom socad import Server\n```\n\nThe available functions of each class are available in the project [library reference](https://socad.readthedocs.io/en/latest/api/index.html).\n\nA complete demonstration of the program usage can be found in the example below.\n\n## Example\n\nThe provided example runs simulations in Cadence Virtuoso from a client in a different machine (connected through *ssh*), by executing OCEAN scripts provided by the user.\n\nFor more a step by step guide of the example, check [this tutorial](https://socad.readthedocs.io/en/latest/tutorials/common_source.html).\n\n## Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [releases on the project repository](https://github.com/mdmfernandes/socad/releases/).\n\n## Main Contributors\n\n* **Miguel Fernandes** - *Initial work* - [mdmfernandes](https://github.com/mdmfernandes)\n\n## Contributing\n\n1. Fork it!\n2. Create your feature branch: `git checkout -b my-new-feature`\n3. Commit your changes: `git commit -am 'Add some feature'`\n4. Push to the branch: `git push origin my-new-feature`\n5. Submit a pull request :D\n\n## License\n\nThis project is licensed under the GPLv3 License - see the project [LICENSE](https://github.com/mdmfernandes/socad/blob/master/LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdmfernandes%2Fsocad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdmfernandes%2Fsocad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdmfernandes%2Fsocad/lists"}