{"id":18351126,"url":"https://github.com/simagix/hummingbird","last_synced_at":"2025-04-06T10:32:22.155Z","repository":{"id":41129510,"uuid":"461658111","full_name":"simagix/hummingbird","owner":"simagix","description":"MongoDB database migration","archived":false,"fork":false,"pushed_at":"2023-02-26T15:12:17.000Z","size":111,"stargazers_count":25,"open_issues_count":0,"forks_count":9,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-21T21:51:16.591Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/simagix.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":"2022-02-21T00:48:08.000Z","updated_at":"2024-07-13T04:57:20.000Z","dependencies_parsed_at":"2024-06-19T01:31:59.462Z","dependency_job_id":"813e8e44-377c-4d39-9637-13f09962442d","html_url":"https://github.com/simagix/hummingbird","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simagix%2Fhummingbird","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simagix%2Fhummingbird/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simagix%2Fhummingbird/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simagix%2Fhummingbird/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simagix","download_url":"https://codeload.github.com/simagix/hummingbird/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247470322,"owners_count":20944146,"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":[],"created_at":"2024-11-05T21:29:36.064Z","updated_at":"2025-04-06T10:32:21.554Z","avatar_url":"https://github.com/simagix.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The Hummingbird Project\nAs a result of \"losing\" my [MongoPush](https://www.simagix.com/2021/12/a-series-of-mongopush-events.html) source code, I rewrote it but on a smaller scale.  I couldn't get much meaningful help in my previous close source project.  To support many use cases is too big an effort for a person to take on, especially the oplogs streaming part which is in fact a reverse engineering of replication.  I still think it is a great idea and many can benefit from it.  So, here you go, an open source project.  Contributions are welcome.\n\nThe idea of the repository name was from the movie [The Hummingbird Project (2018)](https://en.wikipedia.org/wiki/The_Hummingbird_Project).  The world can use good ideas.  Birds can't fly over the ocean, not because they lack courage, but because there is no one waiting on the other side.\n\n## Quick Start\n### Configuration File Example\n```bash\n{\n  \"command\": \"all\",\n  \"drop\": true,\n  \"source\": \"mongodb://user:password@source@example.com/?compressors=zstd,snappy\u0026readPreference=secondaryPreferred\",\n  \"target\": \"mongodb+srv://user:password@target.example.mongodb.net/?compressors=zstd,snappy\u0026w=2\u0026retryWrites=true\",\n  \"license\": \"Apache-2.0\"\n}\n```\n\n### Start Migration\n- Start neutrino\n```bash\ngo run main/hummingbird.go -start configuration.json\n```\n- Add Additional Workers\n```bash\ngo run main/hummingbird.go -worker configuration.json\n```\n\n### Progress Monitoring\nhttp://localhost:3629\n\n## Build\n```bash\n./build.sh\n```\n\n## Download\n```bash\n./scripts/download-from-docker.sh\n```\n\n## Configurations\n```json\n{\n  \"block\": 10000,\n  \"command\": \"all|config|index|data|data-only\",\n  \"drop\": false,\n  \"includes\": [\n    {\n      \"namespace\": \"database.collection\",\n      \"filter\": {},\n      \"to\": \"database.collection\",\n      \"limit\": 0,\n      \"masks\": [\"field\"],\n      \"method\": \"default|hex|partial\"\n    }\n  ],\n  \"license\": \"Apache-2.0\",\n  \"port\": 3629,\n  \"source\": \"mongodb://[user:XXXXXX@]host[:port][/[db][?options]]\",\n  \"spool\": \"./spool\",\n  \"target\": \"mongodb+srv://user:XXXXXX@host[/[db][?options]]\",\n  \"verbose\": false,\n  \"workers\": 8,\n  \"yes\": false\n}\n```\n\n## License\n[Apache-2.0 License](https://www.apache.org/licenses/LICENSE-2.0)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimagix%2Fhummingbird","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimagix%2Fhummingbird","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimagix%2Fhummingbird/lists"}