Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bsfishy/job-server
A proof-of-concept stateful and contextful job server implemented in Rust
https://github.com/bsfishy/job-server
Last synced: 13 days ago
JSON representation
A proof-of-concept stateful and contextful job server implemented in Rust
- Host: GitHub
- URL: https://github.com/bsfishy/job-server
- Owner: BSFishy
- License: mit
- Created: 2024-06-11T06:23:33.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-11T06:27:21.000Z (7 months ago)
- Last Synced: 2025-01-01T07:44:17.600Z (21 days ago)
- Language: Rust
- Size: 4.88 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# job server
This repository implements a rudimentary job server in Rust. The idea is to have
a pool of threads that listen for jobs. As soon as one becomes available, the
thread executes it. Once all jobs have been executed, cleanly exit.The implementation is similar to a green threads style approach, with the
difference that state is associated with each job. Each job action can have
arbitrary arguments passed as inputs, allowing for context and state to be
managed and maintained externally, relative to the job.I have primarily implemented this as an exercise in preparation for implementing
a compiler. It is designed so that additional jobs can be queued using closures,
which could enable a highly parallelized compilation process.For example, compiling a single file might include multiple other files. The
process would be split up into logical steps, i.e. lexing, parsing, semantic
analysis, code generation, etc. These steps could be implemented using the job
server so that the process is parallelized and is stateful.## maintenance
I have zero intention of maintaining this project. If you find it useful, great!
If you want to contribute, cool. Just know, I may not actually look at or do
anything with your contribution. I have licensed the project under the MIT
license, so feel free to use the code in any way you want. Which means, if you
want to turn it into something, feel free to make a fork and build to your
heart's intent.