{"id":22757425,"url":"https://github.com/peterspackman/sbf","last_synced_at":"2025-08-26T11:32:11.337Z","repository":{"id":96062362,"uuid":"64285957","full_name":"peterspackman/sbf","owner":"peterspackman","description":"Simple binary format, designed to be a small dependency enabling quick ‘cross-platform’ transport between C, C++ and Fortran","archived":false,"fork":false,"pushed_at":"2021-01-06T02:19:51.000Z","size":121,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-11T14:55:02.988Z","etag":null,"topics":["data"],"latest_commit_sha":null,"homepage":"","language":"Fortran","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/peterspackman.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}},"created_at":"2016-07-27T07:11:00.000Z","updated_at":"2021-07-20T13:38:35.000Z","dependencies_parsed_at":"2023-04-28T04:01:59.092Z","dependency_job_id":null,"html_url":"https://github.com/peterspackman/sbf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/peterspackman/sbf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterspackman%2Fsbf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterspackman%2Fsbf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterspackman%2Fsbf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterspackman%2Fsbf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peterspackman","download_url":"https://codeload.github.com/peterspackman/sbf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterspackman%2Fsbf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272214419,"owners_count":24893201,"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-08-26T02:00:07.904Z","response_time":60,"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":["data"],"created_at":"2024-12-11T07:18:22.114Z","updated_at":"2025-08-26T11:32:11.279Z","avatar_url":"https://github.com/peterspackman.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SBF (Simple Binary Format) v0.2.0\n\nA simple binary format for storing data.\nSBF files are designed to be as braindead as possible, \ni.e. easy to write, easy to read.\n\n# Why? \n\nIt's nice to have a simple binary data format\nfor straightforward applications that don't have complex\nrequirements. (e.g. HDF5, netCDF etc.) Plus it's (much)\nfaster than passing ASCII/UTF8 encoded numerical data around.\n\n# What data formats does it support, how are they defined?\n\nAs of now there are byte, character, integer,\nlong, float, double, complex float and complex\ndouble datatypes.\n\nThese are defined as follows:\n```\nsbf_byte             =   C uint8_t\nsbf_character        =   C char\nsbf_integer          =   C int32_t\nsbf_long             =   C int64_t \nsbf_float            =   C float\nsbf_double           =   C double\nsbf_complex_float    =   2 C floats  {real, imaginary}\nsbf_complex_double   =   2 C doubles {real, imaginary}\n```\n\n# Does this format support XYZ?\n\nIf XYZ is anything other than writing binary data arrays\nof dimension up to 8, consisting of the aforementioned \ndata types, then no.\n\n# Why not XYZ {hierarchical data, compression etc.}?\n\nBasically:\n- I want to keep the format as simple as possible, have only simple\nresponsibilities.\n\n- I believe hierarchy can be done by the file system and directories etc.\n\n- I might support compression later, but doing so requires dependencies,\nsomething I don't wish to add. \n\n# File Structure\n\nAn SBF File is structured as follows:\n```\n+--------------------+\n|   sbf_FileHeader   | file description e.g. number of datasets\n+--------------------+\n|  sbf_DataHeader(s) | 0 or more, one for EACH dataset, containing a \n|        ...         | description of what is stored in `binary_data`\n+--------------------+ \n|    binary_blobs    | binary data described in data header section(s)\n+--------------------+\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterspackman%2Fsbf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeterspackman%2Fsbf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterspackman%2Fsbf/lists"}