{"id":15107379,"url":"https://github.com/pharo-project/threadedffi-plugin","last_synced_at":"2025-09-27T05:31:46.503Z","repository":{"id":56491789,"uuid":"202344761","full_name":"pharo-project/threadedFFI-Plugin","owner":"pharo-project","description":"A Threaded FFI plugin for Pharo. It extends the Cog VM with non blocking queue based FFI.","archived":true,"fork":false,"pushed_at":"2021-07-20T13:55:06.000Z","size":615,"stargazers_count":7,"open_issues_count":9,"forks_count":6,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-09-26T21:24:07.222Z","etag":null,"topics":["pharo"],"latest_commit_sha":null,"homepage":null,"language":"Smalltalk","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/pharo-project.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}},"created_at":"2019-08-14T12:19:37.000Z","updated_at":"2023-01-05T09:17:34.000Z","dependencies_parsed_at":"2022-08-15T19:50:11.752Z","dependency_job_id":null,"html_url":"https://github.com/pharo-project/threadedFFI-Plugin","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2FthreadedFFI-Plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2FthreadedFFI-Plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2FthreadedFFI-Plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pharo-project%2FthreadedFFI-Plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pharo-project","download_url":"https://codeload.github.com/pharo-project/threadedFFI-Plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234391382,"owners_count":18824810,"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":["pharo"],"created_at":"2024-09-25T21:24:06.794Z","updated_at":"2025-09-27T05:31:41.171Z","avatar_url":"https://github.com/pharo-project.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ThreadedFFI-Plugin\n\nA Threaded FFI plugin for Pharo. It extends the Cog VM with non blocking queue based FFI.\nThis plugin has two main parts: a VM plugin written in C, and a Pharo library to access it.\n\n## Installation\n\nIf you're running a headless VM, you very probably have the threaded FFI plugin with it.\n\n### Installing the Pharo library\n\nYou can then load this project importing it through Iceberg, or by executing the following metacello expression:\n\n```smalltalk\nMetacello new\n\t\tbaseline: 'ThreadedFFI';\n\t\trepository: 'github://pharo-project/threadedFFI-Plugin';\n\t\tonConflictUseLoaded;\n\t\tload.\n```\n\nIf you're missing the plugin, update your headless VM or compile one from sources.\n\n### Using with UFFI\n\nThis new FFI implementation is fully compatible with UFFI. \nIt implements a new UFFI backend that can be used as an alternative to the one implemented using SqueakFFI plugin. \nTo use it please refer to [this page](https://github.com/pharo-project/threadedFFI-Plugin/wiki/Using-with-UFFI).\n\n### Compiling the plugin from sources\n\n```bash\ncmake .\nmake install\nmake test\nmake package\n```\nThe build results can be found in `build/packages/*`\n\n#### Compilation in OS X Catalina and Newer\n\nSince some changes in the compilation toolchain of XCode, it is needed to give some hints to the build of libFFI. \nLibFFI is built during the building of the plugin.\nTo run the build correctly, the environment variable CPATH should be set: \n\n```\nexport CPATH=`xcrun --show-sdk-path`/usr/include\n```\n\n### Running the tests\n\nRunning the tests requires an external library with defined functions and types.\nTo obtain the test library, you need to compile it from sources.\nThen copy it close to your image or your VM.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharo-project%2Fthreadedffi-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpharo-project%2Fthreadedffi-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpharo-project%2Fthreadedffi-plugin/lists"}