{"id":31243659,"url":"https://github.com/rajatsandeepsen/interphase","last_synced_at":"2026-06-30T09:31:21.776Z","repository":{"id":307382455,"uuid":"680398557","full_name":"rajatsandeepsen/interphase","owner":"rajatsandeepsen","description":"Python Package for genarating typescript interface with git submodule folder structure","archived":false,"fork":false,"pushed_at":"2023-08-25T21:55:20.000Z","size":2046,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-03T19:06:13.678Z","etag":null,"topics":["git-submodule","interfaces","pypi","python","typescript"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/interphase/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajatsandeepsen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-08-19T05:47:45.000Z","updated_at":"2025-07-29T06:40:04.000Z","dependencies_parsed_at":"2025-07-31T01:32:07.024Z","dependency_job_id":"8edaecb9-c2e9-40c5-814e-e7add2f304b1","html_url":"https://github.com/rajatsandeepsen/interphase","commit_stats":null,"previous_names":["rajatsandeepsen/interphase"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rajatsandeepsen/interphase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatsandeepsen%2Finterphase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatsandeepsen%2Finterphase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatsandeepsen%2Finterphase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatsandeepsen%2Finterphase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajatsandeepsen","download_url":"https://codeload.github.com/rajatsandeepsen/interphase/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatsandeepsen%2Finterphase/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34961543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["git-submodule","interfaces","pypi","python","typescript"],"created_at":"2025-09-23T01:51:43.194Z","updated_at":"2026-06-30T09:31:21.754Z","avatar_url":"https://github.com/rajatsandeepsen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Interphase - Bridging Backend and Frontend Development with Git Submodule\n\n![alt text](./intro.png)\n\n`Interphase` is a powerful `tool` + `git structure` designed to streamline the collaboration between backend and frontend developers by facilitating the sharing of critical information, including types, example data, API URLs, and documentation. The core concept is to provide an interconnected platform that enables seamless communication between these two development environments, thereby reducing friction and enhancing productivity, thus bridging the gap between the two development repository.\n\n---\n\n### Currently Available Support Packages\n- [Interphase](https://pypi.org/project/Interphase/) - Python → Typescript\n- [Coming Soon]() - Go → Typescript\n\n### Requirements\n\u003e `Python \u003e= 3.7`\n\n### 1. Installation\n\n\n```bash\n$ pip install interphase\n```\n\n### 2. Quick Start\n\n\n#### 📁  Simple folder structure\n```\n📁  your_project\n|\n├──📁 types (requied)\n|   |\n│   └──📄user.d.ts (optional)\n|\n└──📄main.py\n```\n\n\n#### 📄main.py\n```python\nfrom interphase import typewriter\n\nts = typewriter(\"./types\")\n\nuserData = {\n    \"name\": \"John Doe\",\n    \"age\": 30,\n    \"email\": \"example@demo.com\",\n    \"skills\": [\"Python\", \"TypeScript\", \"JavaScript\"]\n}\n\nts.write('user', 'UserData', userData)\n```\n\n#### 📄 user.d.ts\n```typescript\nexport type UserData = {\n    name: string;\n    age: number;\n    email: string;\n    skills: string[];\n}\n```\n\n\n### 3. Real Life Developer Usage\n\n\n#### .gitmodules\n\n```toml\n[submodule \"api\"]\n\tpath = api\n\turl = https://github.com/username/api.git\n```\n\n#### Frontend\n\n```\n📁 FrontEnd-repo\n│\n├──📁 api (git submodule)\n│   │\n│   ├──📄__init__.py\n│   ├──📄setup.py\n│   │\n│   └──📁 types\n│       │\n│       └──📄 user.d.ts\n│\n├──📁 src\n│   │\n│   └──📄 (other frontend files, where /api/types are imported and used)\n│   \n├──📄 package.json\n├──📄 .gitmodules (important)\n└──📄 .gitignore\n```\n\n#### Backend\n\n```\n📁 Backend-repo\n│\n├──📁 api (git submodule)\n│   │\n│   ├──📄__init__.py\n│   ├──📄setup.py\n│   │\n│   └──📁 types\n│       │\n│       └──📄 user.d.ts\n│\n├──📁 src\n│   │\n│   └──📄 (other backend files, where helps to create types for /api)\n│   \n├──📄 requirements.txt\n├──📄 .gitmodules (important)\n└──📄 .gitignore\n```\n\n### 4. Configuration\n\n##### 📄 /api/setup.py \n\n```python\nconfig = typewriter(\"./api/types\", d_ts=True) # base setup\n```\n##### 📄 /api/\\_\\_init\\_\\_.py\n\n```python\nfrom .setup import config as ts\n```\n\n### 5. API Reference\n\n##### export types | interface\n```python\nts = typewriter(\"./api/types\") \n\n# default is export enabled\nts.write('user', 'UserData', userData)\nts.write('user', 'UserData2', userData, export=False)\n\n# default is type and interface can be enabled\nts.write('user', 'UserData3', userData, interface=True)\nts.write('user', 'UserData3', userData, export=False, interface=True)\n```\n```typescript\n// user.d.ts\n\nexport type UserData = {...}\ntype UserData2 = {...}\n\nexport interface UserData3 {...}\ninterface UserData3 {...}\n```\n\n##### base folder\n```python\n# base directory can't be empty string\nts = typewriter(\"api/types\") \nts = typewriter(\"./api/types\") \n\n\n# d.ts is defualt\n# .ts can be enabled\nts = typewriter(\"./api/types\", d_ts=False) \nts.write('user', 'UserData', userData)\n```\n```typescript\nexport type UserData = {...} // user.ts \n```\n\n\n##### file name\n```python\n# type name and file name can't be empty string\nts.write('user.ts', 'UserData', userData)\nts.write('user.d.ts', 'UserData', userData)\n\n\n# d.ts is defualt\nts.write('user', 'UserData', userData)\n```\n\n### 6. Contributing Guide\n\nWe encourage contributions from the community to make Interphase even more powerful and versatile. If you find issues, have ideas for improvements, or want to suggest new features, please check our Contribution Guidelines for more information.\n\n```bash\n$ git clone https://github.com/rajatsandeepsen/interphase.git\n$ cd interphase\n```\n\n```bash\n$ pip install --upgrade setuptools\n$ pip install --upgrade build\n$ pip install --upgrade twine\n```\n\n```bash\n$ python -m build # takes a lot of time\n```\n```\nbuild result will be like:\n\n📁 interphase\n├──📁 interphase\n├──📄pyproject.toml\n├──📄requirements.txt\n├──📄.gitignore\n├──📄setup.py\n│\n└──📁 dist\n    │\n    ├──📄interphase-0.0.6.whl\n    └──📄interphase-0.0.6.tar.gz\n```\n\n```bash\n# install from dist\n\n$ pip install dist/interphase-0.0.6.whl\n# or\n$ pip install dist/interphase-0.0.6.tar.gz\n```\n\n```bash\n# upload to pypi\n$ python -m twine upload --repository pypi dist/*\n# enter username \u0026 password from pypi\n```\n\n### 7. License\n\nInterphase is not released under any License.\n\n---\n\nFeel free to customize and expand upon this draft to best reflect the features, benefits, and usage of your \"Interphase\" package.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatsandeepsen%2Finterphase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajatsandeepsen%2Finterphase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatsandeepsen%2Finterphase/lists"}