{"id":19588952,"url":"https://github.com/oshi/oshi-ffm","last_synced_at":"2025-04-27T12:32:02.801Z","repository":{"id":65568736,"uuid":"495171775","full_name":"oshi/oshi-ffm","owner":"oshi","description":"Operating System and Hardware Information using Java's Foreign Function and Memory API","archived":false,"fork":false,"pushed_at":"2024-04-27T23:52:29.000Z","size":190,"stargazers_count":28,"open_issues_count":4,"forks_count":7,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-05-02T01:17:42.987Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"Java","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/oshi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"github":["dbwiddis"],"tidelift":"maven/com.github.oshi:oshi-core"}},"created_at":"2022-05-22T20:37:15.000Z","updated_at":"2024-05-21T21:25:23.792Z","dependencies_parsed_at":"2023-11-06T02:36:03.778Z","dependency_job_id":"f3c4235e-e19d-43ed-bdbd-99375284e1ba","html_url":"https://github.com/oshi/oshi-ffm","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/oshi%2Foshi-ffm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oshi%2Foshi-ffm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oshi%2Foshi-ffm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oshi%2Foshi-ffm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oshi","download_url":"https://codeload.github.com/oshi/oshi-ffm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224069367,"owners_count":17250456,"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":["hacktoberfest"],"created_at":"2024-11-11T08:16:41.657Z","updated_at":"2024-11-11T08:16:42.971Z","avatar_url":"https://github.com/oshi.png","language":"Java","funding_links":["https://github.com/sponsors/dbwiddis","https://tidelift.com/funding/github/maven/com.github.oshi:oshi-core"],"categories":[],"sub_categories":[],"readme":"![OSHI](https://dl.dropboxusercontent.com/s/c82qboyvvudpvdp/oshilogo.png)\n\n[![MIT License](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n\nOSHI is a free Operating System and Hardware Information library for Java.\n\nOSHI-FFM intends to leverage the efficiency and performance improvements of [JEP 424](https://openjdk.org/jeps/424)\n(Foreign Function \u0026 Memory API) to provide the same capabilities as the original [OSHI](https://github.com/oshi/oshi)\nproject, without the overhead of JNA.\n\nIt does not require the installation of any additional native libraries and aims to provide a\ncross-platform implementation to retrieve system information, such as OS version, processes,\nmemory and CPU usage, disks and partitions, devices, sensors, etc.\n\n## Contributors are (more than) welcome!\n\nThis project is soliciting community involvement with the release of JDK 19, with JEP 424 as a Preview feature.\nThe goal is for a 1.0.0 release in about one year, with the release of JDK 21 LTS.\n\nRecreating (and modifying as needed) the OSHI API is a Herculean task that will require a community effort.\n\nContributors who just want to learn about the new Foreign Function and Memory API are welcome to use this as a practical training ground!  What better way to sharpen your skills than to solve an actual, practical problem instead of repeating a Hello World tutorial!\n\nLong-time OSHI users who want to have a voice in the future of this project are encouraged to contribute more and join the maintainer team.\n\nIdeally this will become a community-maintained project with a team of maintainers, with project direction determined by consensus rather than a benevolent dictator.\n\n## Non-code contributions are (more than) welcome!\n\nThe initial commits have brought over a minimum number of features and minimal documentation. There are tons of non-code things you can do to help:\n - Help define and implement a CI workflow\n - Add more documentation\n - Organize and triage issues and \"where can I help next\" guidance\n - Create cool graphics and branding\n - Solicit contributions from your friends, colleagues, and corporations\n\n## This is a new project with an old history.\n\nThe intent of this project is to eventually contain all the same features of the OSHI project, but using core Java features only, without JNA. The OSHI project has plenty of examples to get you started, but:\n - Do not feel constrained to use the same API.  If the community desires to change the API, that can be done.\n - Do not feel constrained to use the same implementations.  If you know a better way to do things, do it!\n\n## FAQ\n\n**Q: Why all this effort? What's wrong with JNA-based OSHI?**\n\n**A:** Nothing is wrong with JNA! It's a capable program that many projects have used to access native functions in a standard Java-based format.  However, [benchmark](https://github.com/zakgof/java-native-benchmark#results) have shown that JEP 424 (Project Panama)-based implementations are about 12 times faster.  An order of magnitude improvement is worth the effort.\n\n**Q: Will this keep the same API as OSHI?**\n\n**A:** OSHI's API has evolved over 12 years and seems reasonably consistent, so the general structure will likely stay the same. There will possibly be changes in how unavailable or unsupported data is handled, however, including custom exceptions, Optional return types, and possibly better leverage of JPMS modules.\n\nTo disambiguate the packages, this project will prepend `ooo` to exsiting `oshi` package names (the reverse dns for the oshi.ooo domain).\n\n**Q: What does OOO stand for? Why is that OSHI's domain extension?**\n\n**A:** All the good extensions were taken. :-)  OOO seemed the most neutral, non-localized generic domain.\n\nThere is an opportunity to use the triple-O in some sort of branding:\n - Zero additional software required\n - Zero dependencies beyond the JDK\n - Zero restrictions with a permissive license\n\nPerhaps you've got better ideas?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foshi%2Foshi-ffm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foshi%2Foshi-ffm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foshi%2Foshi-ffm/lists"}