{"id":21725724,"url":"https://github.com/FourteenBrush/Classreader","last_synced_at":"2025-07-18T18:30:55.323Z","repository":{"id":196348887,"uuid":"695532556","full_name":"FourteenBrush/Classreader","owner":"FourteenBrush","description":"A Java class-file reader","archived":false,"fork":false,"pushed_at":"2024-08-21T12:51:28.000Z","size":1711,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-21T22:10:34.623Z","etag":null,"topics":["class-file","java-classfiles","javaclass","odin","odin-lang"],"latest_commit_sha":null,"homepage":"","language":"Odin","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/FourteenBrush.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":"2023-09-23T13:32:01.000Z","updated_at":"2024-08-21T12:51:32.000Z","dependencies_parsed_at":"2023-09-24T17:23:58.978Z","dependency_job_id":"b88ed905-c7a0-450e-9a20-26ef915cf27f","html_url":"https://github.com/FourteenBrush/Classreader","commit_stats":null,"previous_names":["fourteenbrush/classreader"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FourteenBrush%2FClassreader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FourteenBrush%2FClassreader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FourteenBrush%2FClassreader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FourteenBrush%2FClassreader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FourteenBrush","download_url":"https://codeload.github.com/FourteenBrush/Classreader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226434119,"owners_count":17624398,"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":["class-file","java-classfiles","javaclass","odin","odin-lang"],"created_at":"2024-11-26T03:19:57.469Z","updated_at":"2024-11-26T03:20:04.845Z","avatar_url":"https://github.com/FourteenBrush.png","language":"Odin","funding_links":[],"categories":["Libraries"],"sub_categories":["Formats"],"readme":"# Classreader\nA Java class-file reader\n\n*Under progress..*\n\n## Usage\n\n```\nclassreader SomeJavaFile.class\n```\n\n## API\n\n```go\nimport \"core:os\"\nimport \"../dependencies/classreader\"\n\nmain :: proc() {\n    data, ok := os.read_entire_file(\"Demo.class\")\n    assert(ok)\n    defer delete(data)\n\n    reader := classreader.reader_new(data)\n    // Note that the returned class' lifetime is bound to\n    // the bytes it got from the reader\n    class, err := classreader.read_classfile(\u0026reader)\n    assert(err == .None)\n\n    classreader.classfile_dump(class)\n}\n```\n\n## Sample output:\n\n```\nVersion: minor=0, major=65 (Java SE 21)\nAccess flags: 0x0021 (ACC_PUBLIC, ACC_SUPER)\nConstant pool:\n   #1 = MethodRef          java/lang/Object.\u003cinit\u003e\n   #2 = Class              java/lang/Object\n   #3 = NameAndType        \u003cinit\u003e:()V\n   #4 = Utf8               java/lang/Object\n   #5 = Utf8               \u003cinit\u003e\n   #6 = Utf8               ()V\n   #7 = FieldRef           Test.i\n   #8 = Class              Test\n   #9 = NameAndType        i:I\n  #10 = Utf8               Test\n  #11 = Utf8               i\n  #12 = Utf8               I\n  #13 = FieldRef           Test.s\n  #14 = NameAndType        s:Ljava/lang/String;\n  #15 = Utf8               s\n  #16 = Utf8               Ljava/lang/String;\n  #17 = Utf8               ConstantValue\n  #18 = Integer            2\n  #19 = Utf8               (Ljava/lang/String;)V\n  #20 = Utf8               Code\n  #21 = Utf8               LineNumberTable\n  #22 = Utf8               (I)V\n  #23 = Utf8               getI\n  #24 = Utf8               ()I\n  #25 = Utf8               getS\n  #26 = Utf8               ()Ljava/lang/String;\n  #27 = Utf8               SourceFile\n  #28 = Utf8               Test.java\nAttributes:\n  SourceFile\n```\n\n## Building the project\n\n- Make sure you got the [Task build system](https://taskfile.dev/installation/) and the [Odin compiler](https://odin-lang.org/docs/install/) installed.\n- Build with `task` or run `task -l` to show all available options\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFourteenBrush%2FClassreader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFourteenBrush%2FClassreader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFourteenBrush%2FClassreader/lists"}