{"id":29823060,"url":"https://github.com/guenchi/darkart","last_synced_at":"2025-07-29T01:39:03.053Z","repository":{"id":102476027,"uuid":"160882519","full_name":"guenchi/Darkart","owner":"guenchi","description":"A binary interface let Chez Scheme use Python, Lua, Ruby etc's library","archived":false,"fork":false,"pushed_at":"2020-04-27T23:36:18.000Z","size":3136,"stargazers_count":194,"open_issues_count":3,"forks_count":19,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-05-12T14:32:39.353Z","etag":null,"topics":["chez","chez-scheme","library","scheme"],"latest_commit_sha":null,"homepage":"","language":"Scheme","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/guenchi.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}},"created_at":"2018-12-07T22:38:39.000Z","updated_at":"2025-02-16T12:51:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"8484cc9f-bd3b-477a-bb01-4b1ab04d8671","html_url":"https://github.com/guenchi/Darkart","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/guenchi/Darkart","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guenchi%2FDarkart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guenchi%2FDarkart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guenchi%2FDarkart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guenchi%2FDarkart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guenchi","download_url":"https://codeload.github.com/guenchi/Darkart/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guenchi%2FDarkart/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267616879,"owners_count":24116171,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"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":["chez","chez-scheme","library","scheme"],"created_at":"2025-07-29T01:38:51.693Z","updated_at":"2025-07-29T01:39:03.046Z","avatar_url":"https://github.com/guenchi.png","language":"Scheme","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Darkart: Chez Scheme's Forign Library Interface\n\nA binary interface let Chez Scheme use Python, Lua, Ruby etc's library\n\nThis project is inspired by the Julia language. The FFI interface provided by Chez is used to embed the interpreter or JIT compiler of other languages into the Scheme program (CPython, Luajit etc) or to link the compiled object code with the C binary interface. (OCaml, Golang etc).\n\nThis library can be ported to other Scheme implementations, with [r6rs-pffi](https://github.com/ktakashi/r6rs-pffi).\n\n***Priority***: Python ✅ \u003e Julia ✅ \u003e Javascript \u003e OCaml \u003e lua ✅ \n\n***Ecosystem***: [NumPy](https://github.com/guenchi/NumPy) ✅ [SciPy](https://github.com/guenchi/SciPy) :construction: [SymPy](https://github.com/guenchi/SymPy) :construction: [Matplotlib](https://github.com/guenchi/Matplotlib) ✅ [Pandas](https://github.com/guenchi/Pandas) :construction:\n\n### Exemple\n\n```scheme\n(define np (py-import 'numpy))\n(define ndarray (py-get np 'ndarray))\n(define pi (py-get np 'pi))\n(define np-array (py-func np 'array))\n(define np-sin (py-func np 'sin))\n(define np-tolist (py-func ndarray 'tolist))\n\n(define get-sin\n  (lambda (lst)\n    (plist-\u003elist\n      (np-tolist\n        (np-sin\n          (py-div\n            (py-mul pi \n              (np-array\n                (list-\u003eplist lst)))\n            (int 180)))))))\n\n(get-sin '(1 2 3 4 5 6 7 8))\n\n=\u003e\n(0.01745240643728351 0.03489949670250097 0.05233595624294383 0.0697564737441253 \n0.08715574274765817 0.10452846326765346 0.12186934340514748 0.13917310096006544)\n```\n## [Manual](https://guenchi.github.io/Darkart/)\n\n### The ecosystem which base on Darkart:\n\nhttps://guenchi.github.io/NumPy\n\nhttps://guenchi.github.io/SciPy\n\nhttps://guenchi.github.io/SymPy\n\nhttps://guenchi.github.io/Matplotlib\n\nhttps://guenchi.github.io/Pandas\n\n(which is more python library binding exemples)\n\n\n### Sources:\n\nhttps://github.com/JuliaPy/PyCall.jl/blob/master/src/PyCall.jl\n\nhttps://docs.python.org/3.7/c-api/index.html\n\nhttps://docs.python.org/2.5/ext/callingPython.html\n\nhttp://www.linux-nantes.org/~fmonnier/OCaml/ocaml-wrapping-c.html\n\nhttp://caml.inria.fr/pub/docs/manual-ocaml-4.00/manual033.html#htoc281\n\n\n### Deprecated attempt:\n\n† https://github.com/guenchi/Darkart/tree/deprecated\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguenchi%2Fdarkart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguenchi%2Fdarkart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguenchi%2Fdarkart/lists"}