{"id":16462988,"url":"https://github.com/sunaoka/ndjson","last_synced_at":"2025-03-21T06:31:48.259Z","repository":{"id":43919257,"uuid":"511778763","full_name":"sunaoka/ndjson","owner":"sunaoka","description":"A PHP library to read and write NDJSON (Newline Delimited JSON) in low memory.","archived":false,"fork":false,"pushed_at":"2024-12-12T09:52:13.000Z","size":36,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-03-17T22:08:14.277Z","etag":null,"topics":["ndjson","php"],"latest_commit_sha":null,"homepage":"https://packagist.org/packages/sunaoka/ndjson","language":"PHP","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/sunaoka.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-07-08T05:52:02.000Z","updated_at":"2024-12-12T09:52:18.000Z","dependencies_parsed_at":"2024-03-18T09:47:04.849Z","dependency_job_id":"c33ae8a1-f965-414d-93e0-49ace59b1e3e","html_url":"https://github.com/sunaoka/ndjson","commit_stats":{"total_commits":17,"total_committers":2,"mean_commits":8.5,"dds":0.05882352941176472,"last_synced_commit":"c58eaa3b48ff890a40425841166ca4574d0dca5d"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunaoka%2Fndjson","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunaoka%2Fndjson/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunaoka%2Fndjson/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sunaoka%2Fndjson/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sunaoka","download_url":"https://codeload.github.com/sunaoka/ndjson/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244751134,"owners_count":20504224,"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":["ndjson","php"],"created_at":"2024-10-11T11:13:03.792Z","updated_at":"2025-03-21T06:31:48.000Z","avatar_url":"https://github.com/sunaoka.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NDJSON Reader/Writer for PHP\n\n[![Latest](https://poser.pugx.org/sunaoka/ndjson/v)](https://packagist.org/packages/sunaoka/ndjson)\n[![License](https://poser.pugx.org/sunaoka/ndjson/license)](https://packagist.org/packages/sunaoka/ndjson)\n[![PHP](https://img.shields.io/packagist/php-v/sunaoka/ndjson)](composer.json)\n[![Test](https://github.com/sunaoka/ndjson/actions/workflows/test.yml/badge.svg)](https://github.com/sunaoka/ndjson/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/sunaoka/ndjson/branch/develop/graph/badge.svg)](https://codecov.io/gh/sunaoka/ndjson)\n\n---\n\nA PHP library to read and write [NDJSON](https://github.com/ndjson) (Newline Delimited JSON).\n\nRead and write one line at a time to execute with low memory usage.\n\nFor better performance, you can also read and write on multiple lines.\n\n## Installation\n\n```bash\ncomposer require sunaoka/ndjson\n```\n\n## Usage\n\n### Read\n\n#### Example NDJSON\n\n```json\n{\"test\": \"001\"}\n{\"test\": \"002\"}\n{\"test\": \"003\"}\n{\"test\": \"004\"}\n{\"test\": \"005\"}\n```\n\n#### Read one line at a time\n\n```php\nuse Sunaoka\\Ndjson\\NDJSON;\n\n$ndjson = new NDJSON('/path/to/file.ndjson');\n\nwhile ($json = $ndjson-\u003ereadline()) {\n    var_dump($json);\n}\n```\n\n```\narray(1) {\n  [\"test\"]=\u003e\n  string(3) \"001\"\n}\narray(1) {\n  [\"test\"]=\u003e\n  string(3) \"002\"\n}\narray(1) {\n  [\"test\"]=\u003e\n  string(3) \"003\"\n}\narray(1) {\n  [\"test\"]=\u003e\n  string(3) \"004\"\n}\narray(1) {\n  [\"test\"]=\u003e\n  string(3) \"005\"\n}\n```\n\n#### Read 3 lines at a time\n\n```php\nuse Sunaoka\\Ndjson\\NDJSON;\n\n$ndjson = new NDJSON('/path/to/file.ndjson');\n\nforeach ($ndjson-\u003ereadlines(3) as $jsons) {\n    var_dump($jsons);\n}\n```\n\n```\narray(3) {\n  [0]=\u003e\n  array(1) {\n    [\"test\"]=\u003e\n    string(3) \"001\"\n  }\n  [1]=\u003e\n  array(1) {\n    [\"test\"]=\u003e\n    string(3) \"002\"\n  }\n  [2]=\u003e\n  array(1) {\n    [\"test\"]=\u003e\n    string(3) \"003\"\n  }\n}\narray(2) {\n  [0]=\u003e\n  array(1) {\n    [\"test\"]=\u003e\n    string(3) \"004\"\n  }\n  [1]=\u003e\n  array(1) {\n    [\"test\"]=\u003e\n    string(3) \"005\"\n  }\n}\n\n```\n\n### Write\n\n#### Write one line at a time\n\n```php\nuse Sunaoka\\Ndjson\\NDJSON;\n\n$ndjson = new NDJSON('/path/to/file.ndjson');\n$ndjson-\u003ewriteline(['test' =\u003e '001']);\n$ndjson-\u003ewriteline(['test' =\u003e '002']);\n```\n\n```\n{\"test\": \"001\"}\n{\"test\": \"002\"}\n```\n\n#### Write multiple lines at a time\n\n```php\nuse Sunaoka\\Ndjson\\NDJSON;\n\n$ndjson = new NDJSON('/path/to/file.ndjson');\n$ndjson-\u003ewritelines([['test' =\u003e '001'], ['test' =\u003e '002']]);\n```\n\n```\n{\"test\": \"001\"}\n{\"test\": \"002\"}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunaoka%2Fndjson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsunaoka%2Fndjson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsunaoka%2Fndjson/lists"}