{"id":17051845,"url":"https://github.com/ryanhamilton/pythondb","last_synced_at":"2025-10-26T05:05:42.725Z","repository":{"id":249798668,"uuid":"825643186","full_name":"ryanhamilton/pythondb","owner":"ryanhamilton","description":"Python as a Database.","archived":false,"fork":false,"pushed_at":"2024-08-11T21:13:18.000Z","size":2765,"stargazers_count":13,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-28T17:27:33.715Z","etag":null,"topics":["database","python"],"latest_commit_sha":null,"homepage":"http://pythondb.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanhamilton.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}},"created_at":"2024-07-08T08:23:39.000Z","updated_at":"2025-09-24T18:36:39.000Z","dependencies_parsed_at":"2024-07-23T12:35:46.020Z","dependency_job_id":"76a7c369-c363-463e-a37c-d5b82e03e3f5","html_url":"https://github.com/ryanhamilton/pythondb","commit_stats":null,"previous_names":["ryanhamilton/pythondb"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ryanhamilton/pythondb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanhamilton%2Fpythondb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanhamilton%2Fpythondb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanhamilton%2Fpythondb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanhamilton%2Fpythondb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanhamilton","download_url":"https://codeload.github.com/ryanhamilton/pythondb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanhamilton%2Fpythondb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281059632,"owners_count":26437061,"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","status":"online","status_checked_at":"2025-10-26T02:00:06.575Z","response_time":61,"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":["database","python"],"created_at":"2024-10-14T10:07:40.850Z","updated_at":"2025-10-26T05:05:42.699Z","avatar_url":"https://github.com/ryanhamilton.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MyPythonDB - Python as a Database\n\n![PythonDB](html/img/pythondb-overview.png)\n\nPython is at the heart of most data analysis but to share analysis's most users have been uploading data to SQL databases, until now.\nMyPythonDB turns your python instance into an SQL database. Existing tools can query data directly at faster than database speeds.\n\n- PythonDB provides a MySQL interface that allows every BI tool to just work.\n- With DuckDB and Polars-SQL you can directly query in-memory dataframes, S3 or on-disk parquet files using SQL.\n- Via the simple SQL editor web interface, you can share links to results with colleagues.\n\nModern tools and libraries are arriving and providing capabilities and performance only previously available accessible by paying for \nhuge enterprise licenses $$$. Given these changes, We believe data analysts will increasingly be performed using these tools in future.\n\n## Uses\n\n1. Import package to expose your python instance as a MySQL Database.\n2. pythondb.exe mydb.duckdb - Load a duckdb database and make it remotely accessible.\n3. pythondb - A new in-memory duckdb instance\n4. pythondb --language polars --language polars - A polars instance\n\n### Python as MySQL\n\n```\nimport mypythondb\n\nmypythondb.start(port=3145, webport=9090, language='POLARS')\n```\n\n## Command Line Options\n\n```\nOptions:\n  -l, --language LANG    Language to interpret code as.  [default: PYTHON]\n  -c, --command COMMAND  Run COMMAND\n  -P, --port SQLPORT     Port for MySQL compatible server to listen on\n  -w, --webport WEBPORT  Port for webserver to listen on\n  -q, --quiet            Quiet, don't show banner\n  -v, --verbose          Display debugging information\n  --version              Show the version and exit.\n  --help                 Show this message and exit.\n```\n\n# Development Info\n\n### Facts\n\n- **Python** is the language for data analysis.\n- **Polars** / **DuckDB** provides extremely fast DataFrame operations previously only accessible at great cost.\n- Many libraries and databases are converging on common data formats\n    - Apache **Arrow** in memory\n    - Apache **Parquet** on disk\n\n\n# Dev Commands\n```\npoetry install --sync\npoetry lock\npoetry run pythondb\npoetry run pytest\npoetry run pyinstaller --onefile launcher.py --icon html\\favicon.ico --name pythondb --add-data html;html\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanhamilton%2Fpythondb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanhamilton%2Fpythondb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanhamilton%2Fpythondb/lists"}