Skip to content
This repository has been archived by the owner on Oct 15, 2022. It is now read-only.

Windows build #90

Open
iamalexei opened this issue Oct 6, 2021 · 10 comments
Open

Windows build #90

iamalexei opened this issue Oct 6, 2021 · 10 comments
Labels
help wanted Extra attention is needed

Comments

@iamalexei
Copy link

Please, add the Reventlou binary for Windows. Thank you!

@b3z b3z added the help wanted Extra attention is needed label Oct 6, 2021
@b3z
Copy link
Owner

b3z commented Oct 6, 2021

So right now you could compile the client for windows quite easily. It gets harder with the server since it uses redis and redis does not offer windows support.

So since data should be kept private the most reasonable choice would be running a private external server on e.g. a linux machine and accessing it using your windows desktop.

On the other hand you could (I am not sure if this is smart but it might work) run this version of redis which is a windows port. But you cannot be sure how safe it works since this project was discontinued 5 years ago.

What I can do right now is setting up an external server for demo reasons and release a windows build of the client. This way people on windows could test it out. Although this would be a shared server amongst all windows testers.

Let me know what you think. Maybe you are also keen on working towards windows compatibility?

Edit: I skimmed through the code and made some notes on how to make the whole thing windows compatible. If you want you can have a look at #91.

@iamalexei
Copy link
Author

the most reasonable choice would be running a private external server on e.g. a linux machine

There's another option for Windows 10/11: running redis on Windows Subsystem for Linux on the same machine as the client.

But you cannot be sure how safe it works since this project was discontinued 5 years ago.

I agree with your safety concerns.

What I can do right now is setting up an external server for demo reasons and release a windows build of the client.

That would be great

I skimmed through the code and made some notes on how to make the whole thing windows compatible.

Here some thoughts on your notes:

  • On Linux/WSL: if reventlou doesn't depend on the specific redis version, you could use a distro's package manager to install it, compilation is not necessary. In case of Debian: sudo apt install redis-server redis-redisearch
  • Dotfiles can be used on Windows. For example, the GitHub Desktop client uses a dotfile on Windows (C:\Users\<username>\.gitconfig). Dotfiles are just not hidden like they're on macOS/Linux

@b3z
Copy link
Owner

b3z commented Oct 6, 2021

Alright. So running it in WSL then is not a Windows release but a Linux release. That would be way easier. Also you would/could run the client in WSL as well?

And no, we don't depend on a certain redis version. So the suggestion to use a package manager for installing redis is a quite good solution.
In the end the server as it is right now is just a redis server with RediSearch loaded as a module.

If it is the common way to use dotfiles in Windows as well then that's even better.

@iamalexei
Copy link
Author

It's possible to run Linux GUI apps in WSL. For a person, who hasn't previously installed any GUI app in WSL, they'll need to install and configure VcXsrv server on Windows 10 or just install WSL vGPU drivers on Windows 11. However, as for me this contraption looks like the Frankenstein's monster.

Yes, even some Microsoft's apps, like VS Code and GitHub Desktop use dotfiles/dotdirs on Windows.

@b3z
Copy link
Owner

b3z commented Oct 8, 2021

I agree. That is way too complicated. Building the client for windows doesn’t seem to be that hard anyway.
I will try to run an external demo server and build a windows package in the next couple days. Right now I am a little short on time so this may take a while :/

@iamalexei
Copy link
Author

BTW, what are the advantages of using redis in reventlou over serverless solutions, like UnQLite?

@b3z
Copy link
Owner

b3z commented Oct 8, 2021

Honestly I did not compare a lot. I just picked redis because of its speed. I also like that it is not relational.

If UnQLite is as fast as redis or even faster I’d be down to swap over. I don’t know much about databases so I am happy to get advice.
Maybe SQLite is a good option as well. I have no idea.

@iamalexei
Copy link
Author

UnQLite is NoSQL too.

Unfortunatelly, I can't give you any experince-based advice on which db is faster. Here's a post that might be interesting for you, but it's from 2014.

My understanding is that you're trying to use the server db the way serverless dbs are intended to be used. Nevertheless, at the end of the day, which db is easier for you to work with matters too.

@b3z
Copy link
Owner

b3z commented Oct 9, 2021

That looks promising. As I said earlier I didn't really pick redis for a reason. It was just the database I knew best when I started.

If you come up with a solution that is faster than RediSearch and even embedded I'd be happy to use it.

Of course it would be smarter to go serverless. For a while I had the thought to use external servers but it honestly doesn't make sense since it would just slow down the app dramatically.

@iamalexei
Copy link
Author

If you come up with a solution that is faster than RediSearch and even embedded I'd be happy to use it.

OK, I'll let you know If I stumble upon something that can meet your requirements.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants