{"id":21861334,"url":"https://github.com/seng3694/base64","last_synced_at":"2025-03-21T20:18:39.017Z","repository":{"id":114139303,"uuid":"162161450","full_name":"Seng3694/base64","owner":"Seng3694","description":"Base64 encode and decode","archived":false,"fork":false,"pushed_at":"2018-12-17T16:45:29.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-26T14:50:12.167Z","etag":null,"topics":["base64","base64-decoding","base64-encoding","c","cmake"],"latest_commit_sha":null,"homepage":"","language":"C","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/Seng3694.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":"2018-12-17T16:44:08.000Z","updated_at":"2018-12-17T16:46:26.000Z","dependencies_parsed_at":"2023-06-14T07:00:30.912Z","dependency_job_id":null,"html_url":"https://github.com/Seng3694/base64","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/Seng3694%2Fbase64","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seng3694%2Fbase64/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seng3694%2Fbase64/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Seng3694%2Fbase64/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Seng3694","download_url":"https://codeload.github.com/Seng3694/base64/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244860600,"owners_count":20522466,"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":["base64","base64-decoding","base64-encoding","c","cmake"],"created_at":"2024-11-28T03:11:14.702Z","updated_at":"2025-03-21T20:18:38.990Z","avatar_url":"https://github.com/Seng3694.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# base64 C library #\n\nC library which can encode bytes to base64 strings and base64 strings to bytes.\nBecause the resulting length is precalculated only one `malloc` call is used per function.\n\n## How to use ##\n\n### Strings ###\n\n```c\n#include \u003cbase64.h\u003e\n\nint main(void)\n{\n    const char* string = \"hello world\";\n    const char* expected = \"aGVsbG8gd29ybGQ=\";\n    char* encoded = base64_encode(string, strlen(string));\n    //true for C string '\\0'\n    char* decoded = base64_decode(encoded, B64_TRUE);\n    \n    assert(streq(string, decoded));\n    assert(streq(expected, encoded));\n    \n    free(encoded);\n    free(decoded);\n    \n    return 0;\n}\n```\n\n### Structs ###\n\n```c\n#include \u003cbase64.h\u003e\n\nint main(void)\n{\n    struct TestStruct\n    {\n    \tunsigned int a;\n    \tint b;\n    \tfloat c;\n    \tdouble d;\n    };\n    \n    struct TestStruct test;\n    test.a = 20;\n    test.b = -123;\n    test.c = -0.123f;\n    test.d = 1234.123456789;\n    \n    char* encoded = base64_encode(\u0026test, sizeof(struct TestStruct));\n    //false because it is no string\n    struct TestStruct* decoded = base64_decode(encoded, B64_FALSE);\n    \n    assert(decoded-\u003ea == test.a);\n    assert(decoded-\u003eb == test.b);\n    assert(decoded-\u003ec == test.c);\n    assert(decoded-\u003ed == test.d);\n    \n    free(encoded);\n    free(decoded);\n    return 0;\n}\n```\n\n## Build ##\nProject uses [CMake][1].\n\nYou can include this project as a submodule:\n```\ngit submodule add \"https://github.com/Seng3694/base64\"\n```\n\nAnd then add the directory to your CMakeLists:\n```CMake\nadd_subdirectory(base64)\n```\n\nAnd link it with your application:\n```CMake\ntarget_link_libraries(YOUR_TARGET base64)\n```\n\nOr just embed it manually.\n\n## License ##\nThis library is licensed under the MIT License. See [LICENSE][2] for more information.\n\n[1]:http://www.cmake.org/\n[2]:LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseng3694%2Fbase64","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseng3694%2Fbase64","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseng3694%2Fbase64/lists"}