{"ref":"artifact:xinitrc86-zthread","page":"/artifacts/xinitrc86-zthread","json":"/artifacts/xinitrc86-zthread.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"xinitrc86-zthread","name":"zthread","artifact_type":"package","ecosystem":"abap","domain":"operations-and-runtime","origin_ring":"independent","description":{"one_line":"A threading library for ABAP modelled on Java's Thread and Runnable interface: a runnable class is forked as a thread, joined singly or all at once, and returns a result or a callback.","short":"Threading library for ABAP modelled on Java's Thread and Runnable","what_it_solves":"Running several pieces of work in parallel and collecting their results otherwise needs its own coordination logic each time. Here, a class implements the zif_runnable interface with the work to fork, is handed to a new thread instance, and started; a thread's join method, or the static join_all, waits for one thread or all of them to finish. A result comes back either by implementing zif_runnable_result and casting the thread's result once it has been joined, or through a callback object with on_result and on_error methods, which has to still be referenced when the thread finishes."},"links":{"repo":"https://github.com/xinitrc86/zthread"},"identity":{"license":"MIT"},"source_available":true,"provides":[{"capability":"capability:parallel-processing","what_it_does":"Runs a caller-supplied unit of work in a new thread through the Runnable interface, and returns its result either by joining the thread or through a registered callback.","sources":[{"url":"https://github.com/xinitrc86/zthread","title":"xinitrc86/zthread — README","checked":"2026-09-14","quote":"Simple parallel execution via Threads implemented in ABAP, based on JAVA Thread and its *Runnable* interface plus callback capabilities."},{"url":"https://github.com/xinitrc86/zthread","title":"xinitrc86/zthread — README, Usage","checked":"2026-10-19","quote":"Implement the *zif_runnable* interface with the logic you want to *fork* (start in a new thread), give it to a thread and start:"}]}],"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:dotabap"}],"first_seen":"2026-09-14"},"maintainers":["actor:xinitrc86"],"contributors":["actor:larshp","actor:xinitrc86"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"2 contributors"},{"label":"Repository","tier":"poor","evidence":"pushed 2023-09, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"7 test files"},{"label":"Docs","tier":"fair","evidence":"README 4 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":43,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-24","npm":"not published under this name","stars":43,"forks":8,"open_issues":3,"archived":false,"pushed_at":"2023-09-14","license_spdx":"MIT","org_owned":false,"default_branch":"main","created_at":"2021-08-25T10:57:45Z","open_prs":0,"tree_truncated":false,"test_files":7,"workflows":0,"other_ci":false,"readme_bytes":3953,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2021-08-25","last_commit":"2023-09-14","commits":18,"contributors":2,"readme_path":"README.md","readme_sha":"f789260c1e50533624438081f0922bd4ccf64bbb","repo_read":"2026-10-24"},"edges":{"maintainers":[{"ref":"actor:xinitrc86","name":"xinitrc86","json":"/actors/xinitrc86.json"}],"contributors":[{"ref":"actor:larshp","name":"Lars Hvam","json":"/actors/larshp.json"},{"ref":"actor:xinitrc86","name":"xinitrc86","json":"/actors/xinitrc86.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}