ARK-Builders / ARK-Builders/ark-core

Implement a Plugin System for App-Specific Resource Kinds and Commands

Open
#69 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Rust
Stars
10
Forks
6
PR merge metrics
No merged PRs in 30d

Description

## Description

Currently, `ark-cli` defines methods and commands to handle links in the ark managed storage folder. We should consider a cleaner and more generic approach to allow applications depending on `ark-rust` to define app-specific resource kinds and related commands, handling them uniformly.

A potential solution is a plugin system. This would enable any app developer to create not only wrappers for each platform but also CLI commands related to the resource kinds they introduce. For example, `.link` is a custom file format defined by us that contains a `Link to Web` resource. It consists only of a URL, but we also define some metadata and possible properties for it, such as domain and title.

Related discussion: https://github.com/ARK-Builders/ark-rust/pull/67#discussion_r1614597497

## Proposed Tasks

- Develop a plugin system to support app-specific resource kinds and commands.
- Test this feature within the `ark-cli link` command.
- Ensure the result is less code in `ark-cli` and a more straightforward approach.

------
This will enhance reusability by allowing easy reuse of app-specific resource kinds and commands, improve maintainability with cleaner and more manageable code, and increase extensibility by enabling developers to define their own resource kinds and commands.

_Note: This proposal is open for discussion, and we do not have a full plan for it yet._

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing resource-handling methods and commands in ark-cli, especially the ark-cli link command, then review the related discussion in PR 67. Define the plugin-system design for app-specific resource kinds and commands, test it through ark-cli link, and verify that the result reduces duplicated code in ark-cli.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.