Wszystko, czego potrzebujesz, zeby zainstalowac, uzyc i opublikowac biblioteke w Vira.
Vira to rejestr bibliotek dla HackerScript,
obslugiwany przez menedzer pakietow virus. Zamiast wlasnego serwera,
Vira czyta liste bibliotek wprost z pliku
repo-list.json w repozytorium
vira-io/repository na GitHubie -
kazda biblioteka to zwykle repozytorium git albo gotowy plik binarny opublikowany
jako GitHub Release.
Nic nie trzeba instalowac poza samym virus (patrz dokumentacja HackerScript).
Kazda komenda ma ten sam ksztalt:
# pobiera bibliotekÄ™ do cache/libs/vira/<nazwa>/ biezacego projektu virus install vira pretty-error # z jawna wersja (tag wydania / branch, dla static-lib/shared-lib/rust-lib/git) virus install vira hk-parser --version 1.2.0
Dla typu static-lib/shared-lib/rust-lib - jesli
nie podasz --version, Vira sama znajdzie najnowsze wydanie z GitHub Releases
repozytorium wskazanego w polu lib.
Sposob uzycia zalezy od typu biblioteki:
get <vira:pretty-error> import <pretty_error::print_pretty_error> fun main() [ match wczytaj_config() [ Ok(cfg) -> [ log("config wczytany") ] Err(e) -> [ print_pretty_error(pretty_error("nie mozna wczytac configu", e)) ] ] ]
Biblioteka MUSI miec mod.hcs w korzeniu repo, zeby byla importowalna bez ::.
Linkowanie jest automatyczne przy virus build - w kodzie uzywasz extern:
extern "hk_parser" fun hk_parse_raw(wejscie: Str) -> Int
Podpinane przez wygenerowany .cargo/config.toml - rowniez bez recznej konfiguracji Cargo.
| type | Co to jest | Jak uzyc w kodzie |
|---|---|---|
| git | Repozytorium ze zrodlem .hcs | get <vira:nazwa> |
| static-lib | Gotowy plik .a | extern "nazwa" fun ... |
| shared-lib | Gotowy plik .so | extern "nazwa" fun ... |
| rust-lib | Natywna biblioteka .rlib | extern "nazwa" fun ... |
| hlib | Format HackerOS (.hlib) | Zaplanowane na przyszlosc - jeszcze nie zaimplementowane |
Domyslnie biblioteka trafia do cache/ biezacego projektu. Flaga
--local instaluje ja zamiast tego do
$HOME/.hackerscript/cache/ - wspolnego miejsca dla
WSZYSTKICH Twoich projektow na tej maszynie:
virus install vira pretty-error --local
hackerc automatycznie sprawdza to miejsce, jesli biblioteki nie ma
lokalnie w projekcie - nie musisz instalowac jej ponownie w kazdym repo.
github.com/twoj-user/nazwa-biblioteki).git: wrzuc mod.hcs (musi zawierac
publiczne funkcje/struktury) + Virus.hk (metadane) + README +
licencje - plasko, w korzeniu repo.
static-lib/shared-lib/rust-lib: opublikuj
skompilowany plik jako GitHub Release, z URL-em zawierajacym {version}
w miejscu numeru wersji.
libraries w repo-list.json
(patrz schemat ponizej) i otworz pull request.
virus install vira.{
"libraries": [
{
"name": "pretty-error",
"description": "Ladne, kolorowe wyswietlanie bledow HackerScript.",
"type": "git",
"lib": ""
},
{
"name": "hk-parser",
"description": "Parser formatu .hk.",
"type": "static-lib",
"lib": "https://github.com/.../releases/download/{version}/libhk_parser.a"
}
]
}
| pole | opis |
|---|---|
| name | Nazwa uzywana w virus install vira <name> i get <vira:name>. |
| description | Krotki opis pokazywany na tej stronie. |
| type | Jeden z: git, static-lib, shared-lib, rust-lib, hlib. |
| lib | Dla git: puste = github.com/vira-io/<name>, albo jawny URL. Dla reszty: URL wydania z {version}. |