diff --git a/README.md b/README.md index 5c59c29..f703670 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,51 @@ -# richkago +# Richkago - GoLang Download Engine -GoLang Download Engine \ No newline at end of file +#### Richka (From Ukrainian: Рiчка) means river, stands for the download speed of Richka Engine + +#### This project is only active on GitHub (https://github.com/ghinknet/richkago), repositories on any other platform are mirror +#### We will not process PRs or Issues outside of GitHub + +#### Richka for python is here (https://github.com/ghinknet/richka) + +## Usage + +`import "github.com/ghinknet/richkago"` and run script in your code, for example: + +``` +package main + +import ( + "fmt" + "github.com/ghinknet/richkago" + "time" +) + +func main() { + controller := richkago.NewController() + + go func() { + // Start download + timeUsed, fileSize, err := richkago.Download("https://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os-images/raspios_lite_arm64/images/raspios_lite_arm64-2024-11-19/2024-11-19-raspios-bookworm-arm64-lite.img.xz", "2024-11-19-raspios-bookworm-arm64-lite3.img.xz", controller) + if err != nil { + fmt.Println("Download failed:", err) + return + } + + // Print result + fmt.Printf("Time used: %.2f seconds\n", timeUsed) + fmt.Printf("Speed: %.2f MiB/s\n", float64(fileSize)/timeUsed/1024/1024) + }() + + // Monitor progress + for controller.Status() != 0 && controller.Status() != -3 { + if controller.Status() == 1 { + fmt.Printf("Download Progress: %.2f%%\r", controller.Progress()) + } + time.Sleep(100 * time.Millisecond) + } + if controller.Status() == 0 { + fmt.Println("Download completed.") + } +} +``` +Then you'll get a file from Internet :D. \ No newline at end of file