{"id":16724303,"url":"https://github.com/badboy/oppgave","last_synced_at":"2026-03-15T11:33:15.356Z","repository":{"id":57649973,"uuid":"51706825","full_name":"badboy/oppgave","owner":"badboy","description":"A simple Redis-based task queue","archived":false,"fork":false,"pushed_at":"2019-01-31T18:57:40.000Z","size":1700,"stargazers_count":43,"open_issues_count":2,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-12-24T02:01:31.199Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://badboy.github.io/oppgave/","language":"Rust","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/badboy.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}},"created_at":"2016-02-14T18:17:18.000Z","updated_at":"2024-07-12T18:25:43.000Z","dependencies_parsed_at":"2022-09-26T20:30:53.775Z","dependency_job_id":null,"html_url":"https://github.com/badboy/oppgave","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Foppgave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Foppgave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Foppgave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/badboy%2Foppgave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/badboy","download_url":"https://codeload.github.com/badboy/oppgave/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231515008,"owners_count":18388404,"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":[],"created_at":"2024-10-12T22:44:45.308Z","updated_at":"2026-03-15T11:33:10.334Z","avatar_url":"https://github.com/badboy.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# oppgave - A simple Redis-based task queue\n\n[![crates.io](http://meritbadge.herokuapp.com/oppgave)](https://crates.io/crates/oppgave)\n[![Build Status](https://travis-ci.org/badboy/oppgave.svg?branch=master)](https://travis-ci.org/badboy/oppgave)\n\nInspired by [Ost](https://github.com/soveran/ost) and [Kute](https://github.com/moonglum/kute).\n\nA small reliable queue on top of Redis. Allows to push tasks and fetch them again.\nCan handle whatever task object you hand it, as long as it can be encoded and decoded to and from JSON.\n\n## The name: oppgave - task\n\n`oppgave` is Norwegian for task.\nSo `oppgave` is a **oppgave kø**, a **task queue**.\n\nSadly, characters like `ø` don't play to well with stable Rust. [Non-ASCII identifiers are feature-gated](https://github.com/rust-lang/rust/issues/28979).\n\nIt would be possible with nightly and the `non_ascii_idents` feature to use `oppgave-kø`, but *crates.io* doesn't accept crates with non-ascii characters in the name. :(\n\n## [Documentation][]\n\n[Documentation is available online.][documentation]\n\n[documentation]: https://docs.rs/oppgave/\n\n## Installation\n\nAdd it to your dependencies in `Cargo.toml`\n\n```toml\n[dependencies]\noppgave = \"0.1.0\"\n```\n\n## Example: Producer\n\nSee [`examples/worker.rs`](examples/worker.rs) for a working example.\nRun it with `cargo run --example worker`.\n\n```rust\n#[derive(RustcDecodable, RustcEncodable)]\nstruct Job { id: u64 }\n\nlet client = redis::Client::open(\"redis://127.0.0.1/\").unwrap();\nlet con = client.get_connection().unwrap();\nlet producer = Queue::new(\"default\".into(), con);\n\nproducer.push(Job{ id: 42 });\n```\n\n## Example: Worker\n\nSee [`examples/worker.rs`](examples/worker.rs) for a working example.\nRun it with `cargo run --example worker`.\n\n```rust\n#[derive(RustcDecodable, RustcEncodable)]\nstruct Job { id: u64 }\n\nlet client = redis::Client::open(\"redis://127.0.0.1/\").unwrap();\nlet con = client.get_connection().unwrap();\nlet worker = Queue::new(\"default\".into(), con);\n\nwhile let Some(task) = worker.next() {\n    println!(\"Working with Job {}\", job.id);\n}\n```\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadboy%2Foppgave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbadboy%2Foppgave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbadboy%2Foppgave/lists"}