{"id":13603603,"url":"https://github.com/RustAudio/lewton","last_synced_at":"2025-04-11T22:31:43.682Z","repository":{"id":10819801,"uuid":"67112352","full_name":"RustAudio/lewton","owner":"RustAudio","description":"Rust vorbis decoder","archived":false,"fork":false,"pushed_at":"2023-03-02T20:13:53.000Z","size":424,"stargazers_count":272,"open_issues_count":27,"forks_count":24,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-11T00:44:42.853Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RustAudio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2016-09-01T08:20:55.000Z","updated_at":"2025-03-26T07:49:25.000Z","dependencies_parsed_at":"2024-04-16T05:48:28.157Z","dependency_job_id":null,"html_url":"https://github.com/RustAudio/lewton","commit_stats":{"total_commits":298,"total_committers":16,"mean_commits":18.625,"dds":"0.12751677852348997","last_synced_commit":"bb2955b717094b40260902cf2f8dd9c5ea62a84a"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustAudio%2Flewton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustAudio%2Flewton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustAudio%2Flewton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RustAudio%2Flewton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RustAudio","download_url":"https://codeload.github.com/RustAudio/lewton/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248489695,"owners_count":21112620,"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-08-01T19:00:26.699Z","updated_at":"2025-04-11T22:31:43.156Z","avatar_url":"https://github.com/RustAudio.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# lewton\n\n[![docs](https://docs.rs/lewton/badge.svg)](https://docs.rs/crate/lewton)\n[![crates.io](https://img.shields.io/crates/v/lewton.svg)](https://crates.io/crates/lewton)\n[![dependency status](https://deps.rs/repo/github/rustaudio/lewton/status.svg)](https://deps.rs/repo/github/rustaudio/lewton)\n\nVorbis decoder written in pure Rust.\n\nTo give the decoder a try, you can do:\n```sh\ncargo run --example player /path/to/your/audio_file.ogg\n```\nIt will then play back the audio.\n\nIf you want to know how to use this crate, look at the examples folder.\n\nThis crate has a low level API for per-packet decoding in the `audio` and `header` modules,\nand a high level API for ogg/vorbis streams in the `inside_ogg` module.\n\nSome parts were created with help from the public domain\n[stb_vorbis](http://nothings.org/stb_vorbis/) decoder implementation.\n\nThe minimum required Rust version is 1.56.\n\n## Use of unsafe\n\nThe entire library uses not a single line of unsafe code.\nIn fact, lib.rs contains the `#![forbid(unsafe_code)]` directive.\n\n## About the history of this crate\n\nI started to work on this crate in December 2015.\nThe goal was to learn more about Rust and audio processing,\nwhile also delivering something useful to the Rust ecosystem.\n\nI've tried not to look into the libvorbis implementation,\nas then I'd have to first abide the BSD license, and second\nas I didn't want this crate to become \"just\" a translation\nfrom C to Rust. Instead I wanted this crate to base on the\nspec only, so that I'd learn more about how vorbis worked.\n\nThe only time I did look into the libvorbis implementation\nwas to look up the implementation of a function needed by\nthe ogg crate (the CRC function), which is why that crate\nis BSD licensed, and attributes the authors.\nThis crate however contains no code, translated or\notherwise, from the libvorbis implementation.\n\nAfter some time I realized that without any help of a working\nimplementation progress would become too slow.\n\nTherefore, I've continued to work with the public domain\n`stb_vorbis` implementation and used some of its\ncode (most prominently for the imdct algorithm) to\ntranslate it to rust. I've also used it for debugging by\ncomparing its outputs with mine.\n\nMost of this crate however was created by reading the spec\nonly.\n\n## Use from C\n**lewton** provides a C-compatible set of library, header and pkg-config file.\n\nTo build and install it you can use [cargo-c](https://crates.io/crates/cargo-c):\n\n```sh\ncargo install cargo-c\ncargo cinstall --release --destdir /tmp/lewton\nsudo cp -a /tmp/lewton/* /\n```\n\n## License\n\nLicensed under Apache 2 or MIT (at your option). For details, see the [LICENSE](LICENSE) file.\n\nAll examples inside the `examples/` folder are licensed under the\n[CC-0](https://creativecommons.org/publicdomain/zero/1.0/) license.\n\n### License of your contributions\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for\ninclusion in the work by you, as defined in the Apache-2.0 license,\nshall be dual licensed / CC-0 licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRustAudio%2Flewton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRustAudio%2Flewton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRustAudio%2Flewton/lists"}