Live data from Hacker News

Selkie – Opinionated TUI Framework for Raku

github.com

1–10 of 13 posts

Re: Selkie – Opinionated TUI Framework for Raku

#4

I tried this on macOS … very smooth install and looks great. But why would I switch to Raku just to get a TUI framework?

The tl;dr is: because you want native performance and don't want to focus on blitting pixels or terminal internals.

Selkie has an event/effect model similar to Elm & re-frame, you just declare your widgets and renders/updates are handled by the lib.

As for why Raku:

- grammars allow for easy parsing of complex DSLs

- supply/tap are a natural fit for the event/effect model, asynchronous thread-safe programming

- roles make composing widgets simple

- it's fun to write :D

Re: Selkie – Opinionated TUI Framework for Raku

#5
post #4

I tried this on macOS … very smooth install and looks great. But why would I switch to Raku just to get a TUI framework?

The tl;dr is: because you want native performance and don't want to focus on blitting pixels or terminal internals. Selkie has an event/effect model similar to Elm & re-frame, you just declare your widgets and renders/updates are handled by the lib. As for why Raku: - grammars allow for easy parsing of complex DSLs - supply/tap are a natural fit for the event/effect model, asynchronous thread-safe programming - roles…

Ok cool, thanks!

Re: Selkie – Opinionated TUI Framework for Raku

#7

Oh I found this https://raku.land/zef:antononcube/DSL::Examples So Raku has a module for “few shot” LLM training for DSLs … would be cool to see an example DSL interpreter in Selkie (eg a window for DSL code and a window for output…

Yeah I have thought about doing this with Roaring::Tags (https://raku.land/zef:apogee/Roaring::Tags) so you type a Roaring::Tags query on one side and it shows the built Raku on the other.

Wouldn't be too difficult:

- FileBrowser widget to get the serialised bitmap.

- MultiLineInput for the query text input.

- ListView to show tags and fields.

- RichText for the AST pretty printer.

Re: Selkie – Opinionated TUI Framework for Raku

#8
post #4

Earlier quoted context omitted.

The tl;dr is: because you want native performance and don't want to focus on blitting pixels or terminal internals. Selkie has an event/effect model similar to Elm & re-frame, you just declare your widgets and renders/updates are handled by the lib. As for why Raku: - grammars allow for easy parsing of complex DSLs - supply/tap are a natural fit for the event/effect model, asynchronous thread-safe programming - roles…

Ok cool, thanks!

np, what kind of TUIs do you write?

Re: Selkie – Opinionated TUI Framework for Raku

#9

Oh I found this https://raku.land/zef:antononcube/DSL::Examples So Raku has a module for “few shot” LLM training for DSLs … would be cool to see an example DSL interpreter in Selkie (eg a window for DSL code and a window for output…

There is a set of Raku modules that leverage LLMs for different tasks (mostly code generation) using different techniques:

- https://raku.land/zef:antononcube/LLM::Resources : Uses agentic LLM-graphs with asynchronous execution

- https://raku.land/zef:antononcube/ML::FindTextualAnswer : Finds answers to questions over provided texts (e.g. natural language code generation commands)

- https://raku.land/zef:antononcube/ML::NLPTemplateEngine : Fills-in predefined code templates based on natural language code descriptions/commands

- https://raku.land/zef:antononcube/DSL::Examples : Example translations of natural language commands to executable code

Re: Selkie – Opinionated TUI Framework for Raku

#10

Oh I found this https://raku.land/zef:antononcube/DSL::Examples So Raku has a module for “few shot” LLM training for DSLs … would be cool to see an example DSL interpreter in Selkie (eg a window for DSL code and a window for output…

There is a set of Raku modules that leverage LLMs for different tasks (mostly code generation) using different techniques: - https://raku.land/zef:antononcube/LLM::Resources : Uses agentic LLM-graphs with asynchronous execution - https://raku.land/zef:antononcube/ML::FindTextualAnswer : Finds answers to questions over provided texts (e.g. natural language code generation commands) - https://raku.land/zef:antononcube/…

I've got a few LLM modules too, mostly for handling context management:

- https://raku.land/zef:apogee/LLM::Character implements CCv3 which is a standard for managing characters (system prompts) and lorebooks (injected snippets)

- https://raku.land/zef:apogee/LLM::Chat handles context shifting for long contexts, sampler settings, templating for text completion & inferencing with or without streaming using supply/tap

- https://raku.land/zef:apogee/LLM::Data::Inference adds retries, JSON parsing & multi-model route handling to LLM::Chat

- https://raku.land/zef:apogee/LLM::Data::Pipeline allows you to declaratively build multi-step pipelines (simple agentic LLM use)

- https://raku.land/zef:apogee/HuggingFace::API is a partial wrapper around HF API for grabbing tokenizers.json & tokenizer_config.json

- https://raku.land/zef:apogee/Template::Jinja2 is a near-complete impl of Jinja2 for parsing LLM text completion templates (can be used for anything you'd use Jinja2 for)

- https://raku.land/zef:apogee/Tokenizers is a thin wrapper around HF tokenizers, for token counting mostly

Post reply on HN