frostney / frostney/GocciaScript

Embeddable libgoccia dynamic library (C, Rust, Crystal, Nim, C#)

Open
#823 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

new feature
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, and libgoccia.dll for supported platforms.
  • Publish a generated goccia.h describing 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.