oll3 / bita

Differential file synchronization over http
https://crates.io/crates/bita
MIT License
265 stars 10 forks source link

MicroService to Update an installer package #21

Closed revred closed 2 years ago

revred commented 2 years ago

I am new to rust and am interested in using this crate for a project. I was able to build the source code on VS Code but unable to run it and get an "unknown error" when I try and run. I suspect I am not using it right. Is it possible to have a small section for newbies like me to get started with bita on visual studio code. I am also running this on windows. The real goal is to allow beta to manage installer packages by only delivering the incremental changes from the previous vetsion.

oll3 commented 2 years ago

Hi and welcome @revred !

Is that the exact output of bita on the main git branch? If I run bita without any command I get:

olle@computer:~$ bita
Error: Unknown command

bita -h/ bita --help would yield some more info about the available sub-commands.

I'm not running windows but I wouldn't expect any main differences in output. And working with bita in vscode shouldn't be different to any other Rust project AFAIK. I use vscode with the rust-analyzer extension myself.

Only other thing I can think of, which I don't know how it would show on windows, is if linking with the default/native tls library fails somehow. You could possibly try building with rustls for tls backend instead; cargo build --no-default-features --features rustls-tls.

revred commented 2 years ago

image

Please find the output as above. Let me know if you need more details. Happy to share.

revred commented 2 years ago

Hi and welcome @revred !

Is that the exact output of bita on the main git branch? If I run bita without any command I get:

olle@computer:~$ bita
Error: Unknown command

bita -h/ bita --help would yield some more info about the available sub-commands.

I'm not running windows but I wouldn't expect any main differences in output. And working with bita in vscode shouldn't be different to any other Rust project AFAIK. I use vscode with the rust-analyzer extension myself.

Only other thing I can think of, which I don't know how it would show on windows, is if linking with the default/native tls library fails somehow. You could possibly try building with rustls for tls backend instead; cargo build --no-default-features --features rustls-tls.

Thanks for the warm welcome :) OK, Let me try this. Thanks. I may have not understood the usage very well.

oll3 commented 2 years ago

image

Please find the output as above. Let me know if you need more details. Happy to share.

That's the expected output then :)

This is probably more cargo related than bita but anyways... To pass sub-commands and parameters to an application through cargo run you would typically write something like cargo run -- some-cli-parameter. Notice the extra -- which tells cargo to pass any following parameter to the actual application.

So to get some basic bita help: cargo run -- --help. Or to get a help text about the compress command: cargo run -- compress --help. Or to compress some file: cargo run -- compress -i some.file some.file.cba.

Also you might wanna pass --release to cargo if you're trying out bita on any bigger files since it's REALLY slow in debug mode (cargo run --release -- compress -i some_big.file some_big.file.cba`).

Hope this answers your initial questions!

revred commented 2 years ago

Thanks - understood.

I have made some progress since.

image

I am trying to clone a document using a seed. Here is my attempt. Am I feeding multiple seeds where I may want to say I just have 1 seed, 1 input, and 1 expected output? How do I do this? Apologies if this is too trivial and I am wasting your time!

oll3 commented 2 years ago

Hm, I see. Think that is actually something we might want to change. Right now multiple seeds can be given without repeating --seed, like --seed seed1 seed2 seed3, hence --seed has to go as last parameter or your input and output will be seen as seed files. I think it would be better if one were forced to repeat --seed for each given seed. But will look into this later.

Another thing (just guessing based on your file endings) but the seeds you are giving should typically not be files compressed by bita. It's not wrong but bita will probably not find a lot to re-use there since it doesn't really understand or care about file formats when scanning seed files. A seed should typically be an uncompressed 'version' of the file you want to clone. By version I mean that it might not be the exact file your cloning but it is a file that may contain data similar to the cloned file. If that makes any sense to you.

oll3 commented 2 years ago

Since commit ac49759e0f23138cc2dbb2f02fda096f753691c8 bita will also show cli help if it's being run without argument. This instead of just saying "Error: unknown command". Closing issue since with that I think it has been resolved, if there ever was an issue to begin with. :)