frostney / frostney/GocciaScript
Embeddable libgoccia dynamic library (C, Rust, Crystal, Nim, C#)
Nobody has claimed this yet.
- Dominant language
- Pascal
- Stars
- 20
- Forks
- 3
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 45
Description
Summary
Expose GocciaScript through a versioned libgoccia dynamic library with a stable C ABI so non-Pascal hosts can embed the engine.
Why
The project is embeddable from FreePascal today, but there is no exported library boundary for C, Rust, Crystal, Nim, C#, or other FFI-capable hosts.
Expected behavior
- Ship
libgoccia.dylib,libgoccia.so, andlibgoccia.dllfor supported platforms. - Publish a generated
goccia.hdescribing the stable exported ABI. - Version the ABI and dynamic-library artifact independently from internal Pascal units.
- Prove lifecycle, evaluation, function calls, value marshalling, error handling, and handle ownership from real foreign callers.
Scope notes
- Design: #864.
- Dynamic-library target and header: #865.
- Cross-language validation: #866.
- Documentation and examples: #867.
- Cross-compilation sustainability: #238.
- This track does not produce or promise a static library.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the design in #864 and the dynamic-library and header scope in #865, then review the cross-language validation in #866 and documentation examples in #867. Done means supported platforms ship versioned libgoccia artifacts and goccia.h, with foreign-caller coverage for lifecycle, evaluation, calls, marshalling, errors, and ownership.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, crystal, csharp, nim, rust
- Domain
- api, devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100