{"id":16202538,"url":"https://github.com/polymeilex/ralsa","last_synced_at":"2025-04-07T18:56:19.656Z","repository":{"id":95473269,"uuid":"495070396","full_name":"PolyMeilex/ralsa","owner":"PolyMeilex","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-25T22:31:39.000Z","size":58,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T06:37:18.745Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PolyMeilex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-05-22T13:38:16.000Z","updated_at":"2024-12-30T11:20:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"f47192c3-6672-4005-91a8-bbfe3892d708","html_url":"https://github.com/PolyMeilex/ralsa","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolyMeilex%2Fralsa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolyMeilex%2Fralsa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolyMeilex%2Fralsa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolyMeilex%2Fralsa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PolyMeilex","download_url":"https://codeload.github.com/PolyMeilex/ralsa/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247713312,"owners_count":20983683,"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-10T09:48:18.792Z","updated_at":"2025-04-07T18:56:19.632Z","avatar_url":"https://github.com/PolyMeilex.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ralsa\nJust a playground for writing ALSA midi code in rust.\n\nThe idea is to create ergonomic and Rust firiendly API, by calling kernel APIs directly instead of using libalsa it is possible to enforce thread safety and ownership rules a lot more easily. So TL;DR is: let's use file descriptors instead of raw pointers, and enjoy the benefits.\n\n`alsa-rs` already does that for one of it's modules for the same reason, so the idea is more or less battle proven.\n\nI will mostly focus on MIDI related APIs as that is what I need, but the same idea can be applied to other pats of ALSA as well, and such additions would be welcome.\n\n- `./alsa-ioctl` Bindings for ALSA kernel APIs\n- `./ralsa-seq` High level Rust API for MIDI IO\n- `./tools` Just some binaries used for testing \n- `./alsa-webmidi` Experimenting with WebMIDI-like API for alsa-seq","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolymeilex%2Fralsa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolymeilex%2Fralsa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolymeilex%2Fralsa/lists"}