{"id":33936410,"url":"https://github.com/lebedec/libfmod","last_synced_at":"2026-04-06T07:01:40.367Z","repository":{"id":62442041,"uuid":"448235935","full_name":"lebedec/libfmod","owner":"lebedec","description":"A library wrapper for integrating FMOD Engine in Rust applications.","archived":false,"fork":false,"pushed_at":"2024-10-15T12:59:49.000Z","size":319,"stargazers_count":50,"open_issues_count":4,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-14T01:58:50.952Z","etag":null,"topics":["fmod","fmod-studio","game-development","rust"],"latest_commit_sha":null,"homepage":"","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/lebedec.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-15T09:37:36.000Z","updated_at":"2025-10-24T23:13:03.000Z","dependencies_parsed_at":"2024-01-02T11:24:30.394Z","dependency_job_id":"391f6dce-0c6a-4024-b95b-26ab3e4f14c8","html_url":"https://github.com/lebedec/libfmod","commit_stats":{"total_commits":25,"total_committers":1,"mean_commits":25.0,"dds":0.0,"last_synced_commit":"a5b2924dd9297c05d4d6c9b620ab8c032dbaa8b4"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/lebedec/libfmod","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebedec%2Flibfmod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebedec%2Flibfmod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebedec%2Flibfmod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebedec%2Flibfmod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lebedec","download_url":"https://codeload.github.com/lebedec/libfmod/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebedec%2Flibfmod/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31463015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["fmod","fmod-studio","game-development","rust"],"created_at":"2025-12-12T14:14:44.744Z","updated_at":"2026-04-06T07:01:40.354Z","avatar_url":"https://github.com/lebedec.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libfmod\n\n[![Crates.io Version](https://img.shields.io/crates/v/libfmod.svg)](https://crates.io/crates/libfmod)\n[![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![MSRV](https://img.shields.io/badge/rustc-1.77.0+-ab6000.svg)](https://blog.rust-lang.org/2024/03/21/Rust-1.77.0.html)\n\nA Rust bindings for [FMOD Engine](https://fmod.com/).\nFFI wrapped in Rust code to make them safe, more idiomatic\nand abstract away uncomfortable manual C interface using.\n\n### Installation\n\n```toml\n[dependencies]\nlibfmod = \"~2.222\"\n```\n\nChoose one of FMOD supported versions:\n\n| libfmod | FMOD    | Status | End of life |\n|---------|---------|--------|-------------|\n| 2.222   | 2.02.22 | active |             | \n| 2.206   | 2.02.06 | frozen | 2024-09-03  |\n\nActive: new features, bugfixes, and security fixes are accepted, new crates are still released.\n\nFrozen: no further changes can be pushed to it.\n\n#### FMOD Development Libraries\n\nFMOD development libraries can't be integrated and distributed as part of this crate.\nYou should download and install it considering your platform from:\nhttps://www.fmod.com/download\n\n**Windows (MSVC)**\n\nYou should manually provide FMOD development libraries for MSVC linker.\nCopy following files from default FMOD Engine installation folder\n`C:\\Program Files (x86)\\FMOD SoundSystem\\FMOD Studio API Windows\\`:\n\n```bash\n.\\api\\core\\lib\\x64\\fmod.dll\n.\\api\\core\\lib\\x64\\fmod_vc.lib\n.\\api\\studio\\lib\\x64\\fmodstudio.dll\n.\\api\\studio\\lib\\x64\\fmodstudio_vc.lib\n```\n\nTo one of the folders where Rust can find these libraries:\n\n```bash\n.\\target\\debug\\deps\\\n%USERPROFILE%\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\n```\n\n⚠️ When you're shipping your application make sure to copy FMOD *.dll to the same directory that your *.exe is in.\n\n**Linux / macOS**\n\nBefore you can use libfmod, FMOD libraries must be installed on your computer.\nThe standard locations for dynamic libraries on unix are `/usr/local/lib` and `/usr/lib`.\n\nYou may also place the files in a non-standard location in your file system, but you must create symbolic links to that\nlocation this way:\n\n```bash\nln -s ~/FMOD/api/core/lib/libfmod.dylib /usr/local/lib/libfmod.dylib\nln -s ~/FMOD/api/studio/lib/libfmodstudio.dylib /usr/local/lib/libfmodstudio.dylib\n```\n\nYou may also place the files in location in which Rust searches for dynamic libraries by default:\n\n```bash\n./target/debug/\n./target/debug/deps/\n~/.rustup/toolchains/\u003cyour_toolchain\u003e/lib/\n~/lib/\n```\n\n⚠️ When you're shipping your application make sure to copy FMOD libraries to the same directory that your executable is\nin.\n\n**Why no build options?**\n\n* FMOD does not allow static linking\n* The crate not implement dynamic loading, only dynamic linking\n* There is no simple way to control how Rust search for libraries\n\nSo, we can provide some configuration (e.g \"FMOD_SDK\" location variable), but this is not useful\nbecause you still have to install the FMOD libraries as described above.\n\n### Features\n\nYou can enable or disable crate features depending on your needs:\n\n- `flags`*(default)* provides C-style flags with ergonomic Rust API based\n  on [bitflags](https://crates.io/crates/bitflags) crate\n- `logging` links logging version of FMOD libraries (fmodL.dll, fmodstudioL.dll, etc)\n\n### Getting Started\n\nThe simplest way to get started is to initialize the FMOD system, load a sound, and play it.\nPlaying a sound does not block the application, all functions execute immediately, so we should poll for the sound to\nfinish.\n\n```rust\nuse libfmod::{Error, System, Init, Mode};\n\nfn test_playing_sound() -\u003e Result\u003c(), Error\u003e {\n    let system = System::create()?;\n    system.init(512, Init::NORMAL, None)?;\n    let sound = system.create_sound(\"./path/to/my/sound.ogg\", Mode::DEFAULT, None)?;\n    let channel = system.play_sound(sound, None, false)?;\n    while channel.is_playing()? {\n        // do something else\n    }\n    system.release()\n}\n```\n\nSee more examples in [tests](libfmod/tests) folder.\n\n### Contributing\n\nThis library is generated by [libfmod-gen](libfmod-gen) and can't be changed manually.\n\nBut understanding how a generator works can be quite challenging. So you could make changes of [libfmod](libfmod)\nmanually to show in pull request how the final code should look.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flebedec%2Flibfmod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flebedec%2Flibfmod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flebedec%2Flibfmod/lists"}