{"id":22281278,"url":"https://github.com/jnqnfe/pulse-binding-rust","last_synced_at":"2025-04-04T19:10:22.671Z","repository":{"id":28816815,"uuid":"119414430","full_name":"jnqnfe/pulse-binding-rust","owner":"jnqnfe","description":"FFI and bindings for using PulseAudio from the Rust programming language.","archived":false,"fork":false,"pushed_at":"2023-11-18T17:08:41.000Z","size":1503,"stargazers_count":67,"open_issues_count":9,"forks_count":20,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-29T15:41:10.890Z","etag":null,"topics":["pulseaudio","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jnqnfe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"jnqnfe","patreon":"jnqnfe","liberapay":"jnqnfe","open_collective":"lyndon-brown","issuehunt":"jnqnfe","custom":"https://www.buymeacoffee.com/jnqnfe"}},"created_at":"2018-01-29T17:12:18.000Z","updated_at":"2024-09-11T06:05:00.000Z","dependencies_parsed_at":"2023-11-21T06:44:29.237Z","dependency_job_id":null,"html_url":"https://github.com/jnqnfe/pulse-binding-rust","commit_stats":{"total_commits":731,"total_committers":11,"mean_commits":66.45454545454545,"dds":"0.013679890560875485","last_synced_commit":"3f6039a39a08b77d4dabace36f61a6ceda067dcb"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnqnfe%2Fpulse-binding-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnqnfe%2Fpulse-binding-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnqnfe%2Fpulse-binding-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnqnfe%2Fpulse-binding-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jnqnfe","download_url":"https://codeload.github.com/jnqnfe/pulse-binding-rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247147468,"owners_count":20891707,"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":["pulseaudio","rust"],"created_at":"2024-12-03T16:16:40.097Z","updated_at":"2025-04-04T19:10:22.647Z","avatar_url":"https://github.com/jnqnfe.png","language":"Rust","funding_links":["https://github.com/sponsors/jnqnfe","https://patreon.com/jnqnfe","https://liberapay.com/jnqnfe","https://opencollective.com/lyndon-brown","https://issuehunt.io/r/jnqnfe","https://www.buymeacoffee.com/jnqnfe","https://www.patreon.com/jnqnfe","https://liberapay.com/jnqnfe/"],"categories":[],"sub_categories":[],"readme":"Overview\n========\n\n[\u003cimg alt=\"GitHub Workflow Status\" src=\"https://img.shields.io/github/actions/workflow/status/jnqnfe/pulse-binding-rust/test.yml?branch=master\u0026style=for-the-badge\" height=\"24\"\u003e](https://github.com/jnqnfe/pulse-binding-rust/actions)\n\u003cimg alt=\"license\" src=\"https://img.shields.io/crates/l/libpulse-binding.svg?style=for-the-badge\" height=\"24\"\u003e\n\nThis repository contains *sys* (FFI) and *binding* libraries (crates) for connecting to PulseAudio\n(PA) from the Rust programming language.\n\nThese are provided for each of the three system libraries:\n * `libpulse_binding` for `libpulse`,\n * `libpulse_simple_binding` for `libpulse-simple`, and\n * `libpulse_glib_binding` for `libpulse-mainloop-glib`.\n\nThe *sys* (FFI) crates provide basic interfaces to the raw C APIs, while the *bindings* add\nRust-oriented higher-level abstractions on top of these. (It is the bindings that you should prefer\nto make direct use of in Rust applications).\n\nSee the respective library sub-directories for details.\n\nPulseAudio Version Compatibility\n================================\n\nPlease see the separate `COMPATIBILITY.md` file for discussion of PA version compatibility.\n\nAuthor\n======\n\nThese bindings were not produced by the PulseAudio project, they were produced by an independent\ndeveloper - Lyndon Brown.\n\nYou can help fund my work through one of the following platforms: [patreon][patreon],\n[liberapay][liberapay], or [buy-me-a-coffee][buymeacoffee].\n\n[patreon]: https://www.patreon.com/jnqnfe\n[liberapay]: https://liberapay.com/jnqnfe/\n[buymeacoffee]: https://www.buymeacoffee.com/jnqnfe\n\nCopyright \u0026 Licensing\n=====================\n\nAll parts of these binding libraries are fully open-source and free to use.\n\nAll files in this source code repository, except as noted below, are licensed under the MIT license\nor the Apache license, Version 2.0, at your option. You can find copies of these licenses either in\nthe `LICENSE-MIT` and `LICENSE-APACHE` files, or alternatively [here][1] and [here][2] respectively.\n\n[1]: http://opensource.org/licenses/MIT\n[2]: http://www.apache.org/licenses/LICENSE-2.0\n\n## Documentation Specifics\n\nThe documentation of the *binding* and *sys* libraries provided in this source code repository has\nlargely been copied (with some modifications in places) from that provided in the LGPL 2.1+ licensed\nC header files of the PulseAudio client library itself. This has been done on a fair-use basis.\n(Fair-use is permitted by the LGPL license as discussed in [the GPL/LGPL FAQ][gpl_faq_fairuse]).\nThis should be of no concern for normal use of these crates, you can freely compile them statically\ninto your projects under the dual MIT and Apache-2.0 licensing (documentation naturally does not get\ncompiled into your library/application), and you should be able to freely use a personal copy of the\ncrate documentation generated into HTML form with `cargo doc` (fair-use).\n\n[gpl_faq_fairuse]: https://www.gnu.org/licenses/gpl-faq.en.html#GPLFairUse\n\n## Other Specifics\n\nThe files within the ‘includes’ directory, have been copied directly from the PulseAudio source.\nThese files are kept for development purposes only (to be compared through diff checking against\nfuture versions to find changes that may need propagating into the bindings). To be clear, they are\nnot used in any compilation processes. They are licensed under LGPL by the PulseAudio project.\n\nThe logo image files are a combined derivative of the Rust programming language icon and the\nPulseAudio icon, taking core elements from each. I apply no specific image-oriented license upon\nthem (I am not familiar with such licenses). As a substitute, subject to any constraints of\nlicensing of those original images, I freely permit use on a common-sense fair-use basis. For\ninstance, you may freely make use of them in articles discussing this project (should anyone ever\ncare to do so). Feel free to make your own such derived logos, I make no claim upon it being an\noriginal idea.\n\nSource Code Contents\n====================\n\n - includes/                    - A copy of the original C header files the bindings have been built\n                                  to interface with.\n - pulse-binding/               - The main high-level binding library.\n - pulse-binding-mainloop-glib/ - The high-level binding library for the GLIB mainloop.\n - pulse-binding-simple/        - The high-level binding library for the PulseAudio ‘simple’\n                                  component.\n - pulse-sys/                   - The main raw C API interface library.\n - pulse-sys-mainloop-glib/     - The raw C API interface library for the GLIB mainloop.\n - pulse-sys-simple/            - The raw C API interface library for the PulseAudio ‘simple’\n                                  component.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnqnfe%2Fpulse-binding-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjnqnfe%2Fpulse-binding-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnqnfe%2Fpulse-binding-rust/lists"}