Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] windows support #316

Open
Slach opened this issue Apr 22, 2021 · 55 comments
Open

[FEATURE] windows support #316

Slach opened this issue Apr 22, 2021 · 55 comments
Labels
enhancement New feature or request hacktoberfest For the hacktoberfest month help wanted Extra attention is needed windows Windows specific

Comments

@Slach
Copy link

Slach commented Apr 22, 2021

currently under windows 10

cargo install zellij

return lot of errors during compile termion

error[E0425]: cannot find function `set_terminal_attr` in this scope
   --> C:\Users\Slach\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.6\src\raw.rs:119:9
    |
119 |         set_terminal_attr(&self.prev_ios)?;
    |         ^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `get_terminal_attr` in this scope
   --> C:\Users\Slach\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.6\src\raw.rs:125:23
    |
125 |         let mut ios = get_terminal_attr()?;
    |                       ^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `raw_terminal_attr` in this scope
   --> C:\Users\Slach\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.6\src\raw.rs:126:9
    |
126 |         raw_terminal_attr(&mut ios);
    |         ^^^^^^^^^^^^^^^^^ not found in this scope

error[E0425]: cannot find function `set_terminal_attr` in this scope
   --> C:\Users\Slach\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.6\src\raw.rs:127:9
    |
127 |         set_terminal_attr(&ios)?;
    |         ^^^^^^^^^^^^^^^^^ not found in this scope
@a-kenji a-kenji added enhancement New feature or request windows Windows specific labels Apr 22, 2021
@rashil2000
Copy link

Termion is a unix-only library. I think zellij devs might need to shift to crossterm to become cross platform.

@imsnif
Copy link
Member

imsnif commented Apr 23, 2021

Moving to crossterm would definitely be the first step. We only use termion for input parsing, so crossterm could probably do the trick for us.

@rashil2000
Copy link

That sounds great!

Zellij just might become the first ever terminal multiplexer to have native Windows support 😅

@davidhewitt
Copy link

I took a quick look at this today. This is a non-exhaustive list of obstacles I ran into:

  • unix-only crates:
    • termion as seen above
    • termios
    • daemonize
  • also a wide usage of RawFd unix-only type in zellij's core code.

With a bit of conditional #[cfg] application it's probably possible to get it all to piece together, but it's likely to be quite hard. I agree that a first step to achieve this would be to move to crossterm just so that there's less other stuff that needs to be tweaked to get a build passing on Windows.

If I were to try again I'd build zellij inside WSL2 while porting over to crossterm. However, not sure I'm likely to find a chance to have another look in the near future, so anyone else interested in this should definitely not wait and assume I'll ever get around to it 😅

@blm768
Copy link

blm768 commented Sep 4, 2021

Unfortunately, I'm not so sure that crossterm will be as useful as might be hoped in its current state. It's got great primitives for reading events from the terminal and drawing to it, but it doesn't seem to provide a great way to "chain" those two halves, i.e. to go from an Event to an ANSI sequence that can be forwarded to a child's PTY. A Command can be written as an ANSI sequence (at least on UNIX and Windows 10), but mapping from Events to Commands isn't entirely trivial, and I'm not sure yet that Command even provides the right abstractions. That being said, it might not be terribly difficult to extend crossterm to support what we'd need.

@imsnif
Copy link
Member

imsnif commented Sep 4, 2021

@blm768 - the only thing we use termion for right now is parsing STDIN. The rest we do "in house", so I think on that front if we can switch that to crossterm (which as you say I think can handle that bit?) we should be good.

@blm768
Copy link

blm768 commented Sep 4, 2021

We seem to pass raw ANSI sequences from termion into Action::Write, though; crossterm doesn't expose those raw sequences, so we'd have to construct them ourselves from the parsed events or use something like anes. The plugin API is another place we'd run into issues; AFAICT, crossterm only parses from /dev/tty, so we can't easily just point it at a child PTY.

@imsnif
Copy link
Member

imsnif commented Sep 6, 2021

@blm768 - I see what you're saying now, right. If crossterm can't do that then we can totally offload this to an external library. I'm not sure I understand what trouble you're referring to with the plugin API though... we parse input from stdin and then send it ourselves to plugins... or am I misunderstanding you?

@blm768
Copy link

blm768 commented Sep 6, 2021

The problem with parsing plugin output is that we currently do it with termion. crossterm doesn't provide a replacement for the termion APIs we're using; AFAICT, it's strictly hard-coded to only parse input from /dev/tty, not an arbitrary pipe attached to a plugin.

Looking at how terminals encode typical key sequences, it doesn't seem like it should be hard to translate from Zellij's key event types to ANSI sequences, so at least that part shouldn't be too bad. Parsing basic key sequences probably isn't too hard, either, so perhaps this stuff won't be as bad as I was initially thinking.

@imsnif
Copy link
Member

imsnif commented Sep 6, 2021

I'm still unsure what you're referring to in the plugins, tbh. Could you link to the part of the code you mean?

@blm768
Copy link

blm768 commented Sep 6, 2021

parse_keys is the point where we're using termion for plugins. It's defined here and used here.

@imsnif
Copy link
Member

imsnif commented Sep 6, 2021

Aha! I see. I actually wasn't fully aware we were doing that :D

We should probably be able to get away with just sending the events directly to the plugins and bypassing termion in this case altogether. I mean, we parse them to events, interpret them, then serialize them (because that's what the terminals want) and parse them again (because that's what the plugins want). We can change the relevant instructions to include both the serialized and parsed versions, I think

@kirawi
Copy link

kirawi commented Sep 10, 2021

Could termwiz be a viable alternative?

@blm768
Copy link

blm768 commented Sep 10, 2021

Could termwiz be a viable alternative?

Probably worth looking into, at least. The portable_pty crate by the same author could prove useful for PTY support on Windows; it's almost certainly farther along than my own unreleased PTY library. It's probably not as stable as crossterm yet, though, so if we end up just needing to parse and serialize keyboard/mouse escape sequences as opposed to all possible ANSI sequences, we might be better off in the short term to roll our own parsing.

@kirawi
Copy link

kirawi commented Sep 11, 2021

I wonder if crossterm would be opposed to supporting raw keys. This was also a problem Helix hit: helix-editor/helix#133

@blm768
Copy link

blm768 commented Sep 15, 2021

I wonder if crossterm would be opposed to supporting raw keys.

They might be willing to expose support for raw ANSI sequence parsing. There are references in the crossterm code to future planes to use anes, so at least at some point, there was some interest in making raw ANSI visible in some fashion via a public API. We may be able to simply use anes ourselves. It hasn't had new commits in a couple of years, but it may be that it's more "feature-complete" than "dead".

This was also a problem Helix hit: helix-editor/helix#133

That doesn't sound like quite the same issue, although it's at least tangentially related. They seem to be looking for raw keyboard scan codes rather than raw ANSI sequences.

@imsnif imsnif added hacktoberfest For the hacktoberfest month help wanted Extra attention is needed labels Sep 25, 2021
@kirawi
Copy link

kirawi commented Dec 5, 2021

Looking into this right now. An additional unix-only crate is nix. I'm unaware of a cross-platform alternative to termios. Would a wrapper have to be created?

@imsnif
Copy link
Member

imsnif commented Dec 6, 2021

Yeah, definitely. Both for termios and nix we'd have to create a wrapper. I haven't dealt with that part of the code-base in a while, but I think they should already be in a wrapper, which is what we use the ServerOsInput (https://github.com/zellij-org/zellij/blob/main/zellij-server/src/os_input_output.rs#L203) and ClientOsInput (https://github.com/zellij-org/zellij/blob/main/zellij-client/src/os_input_output.rs#L65) structs for. If for some reason it leaked outside, that's not good and we should totally fix that as part of this.

@kirawi
Copy link

kirawi commented Dec 7, 2021

Might take me some time to write the Windows equivalents for the termios code. I'll have to do some research first.

@kirawi kirawi mentioned this issue Dec 11, 2021
@musjj
Copy link

musjj commented Jan 26, 2023

Any chance for a revival?
A proper terminal multiplexer for Windows is something that I've been wanting for a long time.

@imsnif
Copy link
Member

imsnif commented Jan 27, 2023

Adding windows support to the project is a significant undertaking. More so now as the project evolved since this thread was last active. It will likely require a few weeks of work on my part, as well as access to a windows machine. If this is of interest to anyone, I invite you to look into the "large project" tier of my Github Sponsors.

@holly-hacker
Copy link

holly-hacker commented Jan 27, 2023

Is there any chance this can be broken up into smaller, manageable chunks for external contributors to work on? I don't think many people can shell out 5000usd for a terminal multiplexer...

EDIT: I can also place a bounty on this issue, but not to the scale of multiple thousand dollars.

@imsnif
Copy link
Member

imsnif commented Jan 27, 2023

That's the value of the work. As you can see, while I happily give away my work for free - that gives me the freedom to choose what I work on.

Even if someone magically comes about and implements this "perfectly"*, this being OSS - I have no way of knowing they would stick around. Then the maintenance work - for years to come - falls on me. Maintenance work that might become critical and even block other features.

*If there is such a thing...

@leet0rz
Copy link

leet0rz commented Oct 9, 2023

Windows needs this like yesterday, hoping to see zellij on windows.

@afonsolage
Copy link

It's such a shame Windows is not supported. I had to move to Windows, due to reasons on my job, and had a bad surprise that I wouldn't be able to use my fav term multiplexer.

@leet0rz
Copy link

leet0rz commented Oct 14, 2023

It's such a shame Windows is not supported. I had to move to Windows, due to reasons on my job, and had a bad surprise that I wouldn't be able to use my fav term multiplexer.

Would love to see it on windows too. We need it.

@iXialumy
Copy link

I am starting to investigate things that have to be changed for zellij to build on windows. One thing that needs fixing is the ipc (Inter Process communication). At the moment it is not possible for windows to clone a session stream ipc.rs since this uses an unsafe workaround with unix file descriptors. (Unsafe as in unsafe block, not as in will likely crash).

This unfortunately has no windows equivalent as far as I could tell, but a try_clone feature is in the works on the ipc crate.
I will try to help there, to allow us to fix the issue here.

This being said, IPC is only one of the components that needs reworking to be cross platform compatible and I will try to set up a tracking issue with the components I can find that need reworking for windows to compile and maybe can be worked on independently.
If someone else wants to help, feel free to. A minimum amount of work anyone could do is locate something that needs rework and just add it to the conversation here.

@imsnif
Copy link
Member

imsnif commented Oct 19, 2023

I very much appreciate your investigation and willingness to help and contribute @iXialumy - I'm sure many others who watch this thread do as well. As I mentioned above though - the main chunk of work that will be needed for windows is to adjust our pty handling to work with the windows ConPty stuff. Everything else is "cosmetic" - we might not even need some of these dependencies.

To say it differently: the work needs to start from the technology/ecosystem side and then adjusted as needed from the dependency side. I'm saying this because I don't want you or anyone else to waste time working on stuff that have a high likelihood of not being needed for this issue (eg. for ipc we might be able to switch to a different library).

Again - thanks for your willingness.

@iXialumy
Copy link

Thanks for the quick reply @imsnif . Can we maybe create a separate issue for that where we outline what work has to be done there andmaybe reference that here. I would also have no problem working on that, but at the moment I lack a sense of direction.
If I (or someone else for that matter) would know where we have to change, it would be much easier to begin providing contributions.

I would be open to chat if that would be too big of a topic for a single issue in the beginning. Let me know how I can help :)

@imsnif
Copy link
Member

imsnif commented Oct 19, 2023

Honestly, I don't know how to proceed forward with accepting contributions for this in a way that won't waste anyone's time and cause frustrations.

Here is how it usually happens for me:

  1. A very kind and enthusiastic contributor wants to contribute a large feature. They know it's large, but want to do it anyway.
  2. I provide guidance, spending time I could have spent on other features (or indeed on working on that feature myself). We break the feature into bits, I say what needs to be done, the enthusiastic contributor keeps working on the feature.
  3. We hit some sort of snag. Something that makes the work in 1 look actually larger for both me and the contributor. We are both frustrated. We find a path forward, but the work has now grown in an order of magnitude.
  4. The enthusiastic contributor is not so enthusiastic anymore. They committed to this, so they force themselves to keep going, but eventually other more pressing or interesting things demand their attention and they give up.
  5. Both me and the contributor lose a lot of time and effort, and are more frustrated with opensource in general and the feature specifically. Most of the time the work both of us put in is much larger than what I would have to put in alone if I just sat down and developed the feature on my own (because communication is hard, asynchronous work with someone you don't know is hard, getting into context on a new project is hard, and all the classic problems of collaboration in software development).

So... I don't know what to tell you other than pointing to my last comment for a way forward on this. That's something I haven't tried yet in the OSS world and am totally willing to give a try. This model described above is something I tried very often and it almost always happens in the way I described. It sucks, I know - but I just can't ignore my many experiences here.

@iXialumy
Copy link

iXialumy commented Oct 19, 2023

Yes I totally understand that and I very much appreciate you voicing this concern.
I think what would be valuable (wether or not me or someone else implements this at some point) to collect what the goal of the step should be.
So for example in this specific case, if I understand this correctly, the places where the code interacts with the windows ConPty, and what we expect the 'new' behaviour to be.

That would make it easier to work on this myself without much feedback needed from you and I could keep silent until I may have come up with a solution that may need some help to merge at that point. Or in case a big decision is needed.

That would keep you out of the loop mostly and hopefully reduce frustration to a minimum if I don't succeed with this feature, but still gives yourself or someone else an outline of what this should look like in case this gets picked up later again.

Is that something that you could see working?

@imsnif
Copy link
Member

imsnif commented Oct 19, 2023

Honestly @iXialumy - this sounds like the same process I described. I have been burnt by this too many times. I'm sorry, but I'm spending my full time on this project burning through my savings. My time is very calculated and critical for me. As much as I'd like to see windows support, I cannot risk it for a stranger from the Internet - kind and friendly as they may be.

If you want to start working on this without my input and come to me with a working and compiling version and a list of decisions that need to be made - sure. Otherwise the way forward with this is either a funding campaign as I mentioned in the comment above, or waiting until I get to it myself (which I fully plan to, but cannot yet provide an ETA for - I'm honestly doing what I think is best for the project at the order I feel is right).

@iXialumy
Copy link

iXialumy commented Nov 2, 2023

Yes I fully understand. I guess I will do my best to get as far as I can with this and document what I have done and the Problems I'm facing, so this may provide value even if I can't finish the work.

@iXialumy
Copy link

I am going to continue writing on this in a draft PR, because it does not seem useful to post technical updates here.

@sjplanet
Copy link

Simply start a WSL shell

I try this with WSL. I like this idea. But on my system "paste" doesn't work. To copy it I can define copy_command "clip.exe" .
Is this another issue?

@PitiBouchon
Copy link

PitiBouchon commented Apr 16, 2024

It would be nice if Zellij was cross-platform as other tools like Helix, Alacritty, Nushell...

@lost22git
Copy link

windows users are waiting

@imsnif
Copy link
Member

imsnif commented May 13, 2024

windows users are waiting

Dear windows user,

This is an OSS project run by volunteers. As indicated above you in this thread (which I assume you read before you decided to make this useful comment), said volunteers do not have the capacity or funds to develop this feature at the moment. As I am sure you have also read here, others from the community want this feature so badly they have decided to start developing it on their own - at great effort and with decidedly not enough appreciation for their hard work.

While I appreciate that you want this feature very bad and am sure you did not mean it this way, comments such as yours mostly serve to demoralize and frustrate people doing the actual work on the feature you want. So not only are they not helping, they also serve to actively deter the efforts of people who're working on the feature.

If you'd like to learn more, allow me to recommend this great blog post: Entitlement in Open Source.

Until then - I encourage you and others to be patient and show your appreciation for the very hard work that is being done in the sister PR of this issue.

No need to further comment (here or in the PR) if you don't have anything useful to add, you can use the various reactions kindly provided by GitHub.

All the best to you.

@arunk
Copy link

arunk commented Aug 30, 2024

After reading this thread I still tried to run cargo install --locked zellij on my Windows machine just to see what would happen, and it chugged along for a bit, an installed quite a few packages and built them, but it finally bombed on one package. Well it bombed on a couple of packages, one of them because the build script was looking for perl, so I installed perl and that package seemed to build. Which left just this one package which didn't. I don't know if there are other packages as well that might not build if this one passes, but for what its worth this is the error I got:

error[E0793]: reference to packed field is unaligned
    --> C:\Users\arunk\.cargo\registry\src\index.crates.io-6f17d22bba15001f\ntapi-0.3.7\src\ntexapi.rs:2783:52
     |
2783 |         *tick_count.QuadPart_mut() = read_volatile(&(*USER_SHARED_DATA).u.TickCountQuad);
     |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
     = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
     = note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
     = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)

error[E0793]: reference to packed field is unaligned
    --> C:\Users\arunk\.cargo\registry\src\index.crates.io-6f17d22bba15001f\ntapi-0.3.7\src\ntexapi.rs:2807:25
     |
2807 |         ((read_volatile(&(*USER_SHARED_DATA).u.TickCountQuad)
     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |
     = note: packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses
     = note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced)
     = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers)

For more information about this error, try `rustc --explain E0793`.
error: could not compile `ntapi` (lib) due to 2 previous errors

I've been meaning to learn some rust, I'll try and dig in and see what the issue is. See if I can help fix it. Any pointers would be great.

@a-usr
Copy link

a-usr commented Aug 30, 2024

@arunk That error originates from a crate ( a rust libary ) named ntapi, so its outside of zellij code.
The fact that it isnt mentioned in the cargo.toml (The file where dependencies are declared) in the zellij repo indicates that it is a indirect dependency ( e.g. a dependency declared by a crate that zellij uses ).

Furthermore ntapi seems to be a crate that provides abstractions to the native Windows API, and the fact that this error doesnt seem to get thrown when building under linux / mac indicates that ntapi is only used by its dependand when building on windows (which is a valid design pattern in Rust).

And sorry for explaining everything like if you where an idiot regarding Rust, I just have no way of knowing how informed you are.

Also, if you want to find out the details of a crate (or browse through all aviable crates) take a look at crates.io

Lastly I'd try to avoid to discuss this here, since for every message 19 people are getting an email.

@LifeWorks
Copy link

LifeWorks commented Oct 28, 2024

I ran cargo tree to get the dependencies. It seems the npapi are dependencies of two libraries: mio and sysinfo. At this moment, it is a bit complicated to resolve the subdependencies.

Cargo Tree

zellij v0.41.0
├── dialoguer v0.10.4
│ ├── console v0.15.0
│ │ ├── encode_unicode v0.3.6
│ │ ├── libc v0.2.153
│ │ ├── once_cell v1.18.0
│ │ ├── regex v1.8.1
│ │ │ ├── aho-corasick v1.0.1
│ │ │ │ └── memchr v2.5.0
│ │ │ ├── memchr v2.5.0
│ │ │ └── regex-syntax v0.7.1
│ │ ├── terminal_size v0.1.17
│ │ │ └── winapi v0.3.9
│ │ ├── unicode-width v0.1.10
│ │ └── winapi v0.3.9
│ ├── shell-words v1.1.0
│ ├── tempfile v3.10.1
│ │ ├── cfg-if v1.0.0
│ │ ├── fastrand v2.1.0
│ │ └── windows-sys v0.52.0
│ │ └── windows-targets v0.52.5
│ │ └── windows_x86_64_msvc v0.52.5
│ └── zeroize v1.5.5
├── log v0.4.17
│ ├── cfg-if v1.0.0
│ ├── serde v1.0.202
│ │ └── serde_derive v1.0.202 (proc-macro)
│ │ ├── proc-macro2 v1.0.82
│ │ │ └── unicode-ident v1.0.1
│ │ ├── quote v1.0.36
│ │ │ └── proc-macro2 v1.0.82 ()
│ │ └── syn v2.0.64
│ │ ├── proc-macro2 v1.0.82 (
)
│ │ ├── quote v1.0.36 ()
│ │ └── unicode-ident v1.0.1
│ └── value-bag v1.0.0-alpha.9
│ └── ctor v0.1.22 (proc-macro)
│ ├── quote v1.0.36 (
)
│ └── syn v1.0.96
│ ├── proc-macro2 v1.0.82 ()
│ ├── quote v1.0.36 (
)
│ └── unicode-ident v1.0.1
│ [build-dependencies]
│ └── version_check v0.9.4
├── names v0.14.0
│ └── rand v0.8.5
│ ├── rand_chacha v0.3.1
│ │ ├── ppv-lite86 v0.2.16
│ │ └── rand_core v0.6.3
│ │ └── getrandom v0.2.10
│ │ └── cfg-if v1.0.0
│ └── rand_core v0.6.3 ()
├── suggest v0.4.0
│ ├── clap v3.2.4
│ │ ├── atty v0.2.14
│ │ │ └── winapi v0.3.9
│ │ ├── bitflags v1.3.2
│ │ ├── clap_derive v3.2.4 (proc-macro)
│ │ │ ├── heck v0.4.0
│ │ │ ├── proc-macro-error v1.0.4
│ │ │ │ ├── proc-macro-error-attr v1.0.4 (proc-macro)
│ │ │ │ │ ├── proc-macro2 v1.0.82 (
)
│ │ │ │ │ └── quote v1.0.36 ()
│ │ │ │ │ [build-dependencies]
│ │ │ │ │ └── version_check v0.9.4
│ │ │ │ ├── proc-macro2 v1.0.82 (
)
│ │ │ │ ├── quote v1.0.36 ()
│ │ │ │ └── syn v1.0.96 (
)
│ │ │ │ [build-dependencies]
│ │ │ │ └── version_check v0.9.4
│ │ │ ├── proc-macro2 v1.0.82 ()
│ │ │ ├── quote v1.0.36 (
)
│ │ │ └── syn v1.0.96 ()
│ │ ├── clap_lex v0.2.2
│ │ │ └── os_str_bytes v6.1.0
│ │ ├── indexmap v1.8.2
│ │ │ └── hashbrown v0.11.2
│ │ │ [build-dependencies]
│ │ │ └── autocfg v1.1.0
│ │ ├── once_cell v1.18.0
│ │ ├── strsim v0.10.0
│ │ ├── termcolor v1.1.3
│ │ │ └── winapi-util v0.1.5
│ │ │ └── winapi v0.3.9
│ │ └── textwrap v0.15.0
│ │ ├── smawk v0.3.1
│ │ ├── unicode-linebreak v0.1.2
│ │ │ [build-dependencies]
│ │ │ └── regex v1.8.1 (
)
│ │ └── unicode-width v0.1.10
│ └── lev_distance v0.1.1
├── thiserror v1.0.61
│ └── thiserror-impl v1.0.61 (proc-macro)
│ ├── proc-macro2 v1.0.82 ()
│ ├── quote v1.0.36 (
)
│ └── syn v2.0.64 ()
├── zellij-client v0.41.0 (C:\Users\feng626\workspace\zellij\zellij-client)
│ ├── log v0.4.17 (
)
│ ├── mio v0.7.14
│ │ ├── log v0.4.17 ()
│ │ ├── miow v0.3.7
│ │ │ └── winapi v0.3.9
│ │ ├── ntapi v0.3.7
│ │ │ └── winapi v0.3.9
│ │ └── winapi v0.3.9
│ ├── serde v1.0.202 (
)
│ ├── serde_json v1.0.81
│ │ ├── itoa v1.0.2
│ │ ├── ryu v1.0.10
│ │ └── serde v1.0.202 ()
│ ├── serde_yaml v0.8.24
│ │ ├── indexmap v1.8.2 (
)
│ │ ├── ryu v1.0.10
│ │ ├── serde v1.0.202 ()
│ │ └── yaml-rust v0.4.5
│ │ └── linked-hash-map v0.5.4
│ ├── url v2.5.0
│ │ ├── form_urlencoded v1.2.1
│ │ │ └── percent-encoding v2.3.1
│ │ ├── idna v0.5.0
│ │ │ ├── unicode-bidi v0.3.15
│ │ │ └── unicode-normalization v0.1.23
│ │ │ └── tinyvec v1.6.0
│ │ │ └── tinyvec_macros v0.1.0
│ │ ├── percent-encoding v2.3.1
│ │ └── serde v1.0.202 (
)
│ └── zellij-utils v0.41.0 (C:\Users\feng626\workspace\zellij\zellij-utils)
│ ├── anyhow v1.0.71
│ │ └── backtrace v0.3.65
│ │ ├── addr2line v0.17.0
│ │ │ └── gimli v0.26.1
│ │ ├── cfg-if v1.0.0
│ │ ├── libc v0.2.153
│ │ ├── miniz_oxide v0.5.3
│ │ │ └── adler v1.0.2
│ │ ├── object v0.28.4
│ │ │ └── memchr v2.5.0
│ │ └── rustc-demangle v0.1.21
│ │ [build-dependencies]
│ │ └── cc v1.0.83
│ │ └── jobserver v0.1.31
│ ├── async-channel v1.8.0
│ │ ├── concurrent-queue v2.2.0
│ │ │ └── crossbeam-utils v0.8.15
│ │ │ └── cfg-if v1.0.0
│ │ ├── event-listener v2.5.2
│ │ └── futures-core v0.3.28
│ ├── async-std v1.11.0
│ │ ├── async-attributes v1.1.2 (proc-macro)
│ │ │ ├── quote v1.0.36 ()
│ │ │ └── syn v1.0.96 (
)
│ │ ├── async-channel v1.8.0 ()
│ │ ├── async-global-executor v2.3.1
│ │ │ ├── async-channel v1.8.0 (
)
│ │ │ ├── async-executor v1.4.1
│ │ │ │ ├── async-task v4.2.0
│ │ │ │ ├── concurrent-queue v1.2.2
│ │ │ │ │ └── cache-padded v1.2.0
│ │ │ │ ├── fastrand v1.7.0
│ │ │ │ ├── futures-lite v1.13.0
│ │ │ │ │ ├── fastrand v1.7.0
│ │ │ │ │ ├── futures-core v0.3.28
│ │ │ │ │ ├── futures-io v0.3.28
│ │ │ │ │ ├── memchr v2.5.0
│ │ │ │ │ ├── parking v2.0.0
│ │ │ │ │ ├── pin-project-lite v0.2.14
│ │ │ │ │ └── waker-fn v1.1.0
│ │ │ │ ├── once_cell v1.18.0
│ │ │ │ └── slab v0.4.6
│ │ │ ├── async-io v1.13.0
│ │ │ │ ├── async-lock v2.8.0
│ │ │ │ │ └── event-listener v2.5.2
│ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ ├── concurrent-queue v2.2.0 ()
│ │ │ │ ├── futures-lite v1.13.0 (
)
│ │ │ │ ├── log v0.4.17 ()
│ │ │ │ ├── parking v2.0.0
│ │ │ │ ├── polling v2.2.0
│ │ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ │ ├── log v0.4.17 (
)
│ │ │ │ │ ├── wepoll-ffi v0.1.2
│ │ │ │ │ │ [build-dependencies]
│ │ │ │ │ │ └── cc v1.0.83 ()
│ │ │ │ │ └── winapi v0.3.9
│ │ │ │ ├── rustix v0.37.7
│ │ │ │ │ ├── bitflags v1.3.2
│ │ │ │ │ ├── errno v0.3.8
│ │ │ │ │ │ └── windows-sys v0.52.0 (
)
│ │ │ │ │ ├── io-lifetimes v1.0.10
│ │ │ │ │ │ └── windows-sys v0.48.0
│ │ │ │ │ │ └── windows-targets v0.48.0
│ │ │ │ │ │ └── windows_x86_64_msvc v0.48.0
│ │ │ │ │ ├── libc v0.2.153
│ │ │ │ │ └── windows-sys v0.45.0
│ │ │ │ │ └── windows-targets v0.42.2
│ │ │ │ │ └── windows_x86_64_msvc v0.42.2
│ │ │ │ ├── slab v0.4.6
│ │ │ │ ├── socket2 v0.4.9
│ │ │ │ │ └── winapi v0.3.9
│ │ │ │ └── waker-fn v1.1.0
│ │ │ │ [build-dependencies]
│ │ │ │ └── autocfg v1.1.0
│ │ │ ├── async-lock v2.8.0 ()
│ │ │ ├── blocking v1.2.0
│ │ │ │ ├── async-channel v1.8.0 (
)
│ │ │ │ ├── async-task v4.2.0
│ │ │ │ ├── atomic-waker v1.0.0
│ │ │ │ ├── fastrand v1.7.0
│ │ │ │ ├── futures-lite v1.13.0 ()
│ │ │ │ └── once_cell v1.18.0
│ │ │ ├── futures-lite v1.13.0 (
)
│ │ │ └── once_cell v1.18.0
│ │ ├── async-io v1.13.0 ()
│ │ ├── async-lock v2.8.0 (
)
│ │ ├── async-process v1.4.0
│ │ │ ├── blocking v1.2.0 ()
│ │ │ ├── cfg-if v1.0.0
│ │ │ ├── event-listener v2.5.2
│ │ │ ├── futures-lite v1.13.0 (
)
│ │ │ ├── once_cell v1.18.0
│ │ │ └── winapi v0.3.9
│ │ ├── crossbeam-utils v0.8.15 ()
│ │ ├── futures-core v0.3.28
│ │ ├── futures-io v0.3.28
│ │ ├── futures-lite v1.13.0 (
)
│ │ ├── kv-log-macro v1.0.7
│ │ │ └── log v0.4.17 ()
│ │ ├── log v0.4.17 (
)
│ │ ├── memchr v2.5.0
│ │ ├── num_cpus v1.13.1
│ │ ├── once_cell v1.18.0
│ │ ├── pin-project-lite v0.2.14
│ │ ├── pin-utils v0.1.0
│ │ └── slab v0.4.6
│ ├── backtrace v0.3.65 ()
│ ├── bitflags v2.5.0
│ ├── clap v3.2.4 (
)
│ ├── clap_complete v3.2.1
│ │ └── clap v3.2.4 ()
│ ├── colored v2.0.0
│ │ ├── atty v0.2.14 (
)
│ │ ├── lazy_static v1.4.0
│ │ └── winapi v0.3.9
│ ├── colorsys v0.6.5
│ ├── common-path v1.0.0
│ ├── crossbeam v0.8.1
│ │ ├── cfg-if v1.0.0
│ │ ├── crossbeam-channel v0.5.4
│ │ │ ├── cfg-if v1.0.0
│ │ │ └── crossbeam-utils v0.8.15 ()
│ │ ├── crossbeam-deque v0.8.1
│ │ │ ├── cfg-if v1.0.0
│ │ │ ├── crossbeam-epoch v0.9.8
│ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ ├── crossbeam-utils v0.8.15 (
)
│ │ │ │ ├── lazy_static v1.4.0
│ │ │ │ ├── memoffset v0.6.5
│ │ │ │ │ [build-dependencies]
│ │ │ │ │ └── autocfg v1.1.0
│ │ │ │ └── scopeguard v1.1.0
│ │ │ │ [build-dependencies]
│ │ │ │ └── autocfg v1.1.0
│ │ │ └── crossbeam-utils v0.8.15 ()
│ │ ├── crossbeam-epoch v0.9.8 (
)
│ │ ├── crossbeam-queue v0.3.5
│ │ │ ├── cfg-if v1.0.0
│ │ │ └── crossbeam-utils v0.8.15 ()
│ │ └── crossbeam-utils v0.8.15 (
)
│ ├── curl-sys v0.4.68+curl-8.4.0
│ │ ├── libc v0.2.153
│ │ ├── libnghttp2-sys v0.1.8+1.55.1
│ │ │ └── libc v0.2.153
│ │ │ [build-dependencies]
│ │ │ └── cc v1.0.83 ()
│ │ ├── libz-sys v1.1.8
│ │ │ └── libc v0.2.153
│ │ │ [build-dependencies]
│ │ │ ├── cc v1.0.83 (
)
│ │ │ ├── pkg-config v0.3.25
│ │ │ └── vcpkg v0.2.15
│ │ └── windows-sys v0.48.0 ()
│ │ [build-dependencies]
│ │ ├── cc v1.0.83 (
)
│ │ ├── pkg-config v0.3.25
│ │ └── vcpkg v0.2.15
│ ├── directories v5.0.1
│ │ └── dirs-sys v0.4.1
│ │ ├── option-ext v0.2.0
│ │ └── windows-sys v0.48.0 ()
│ ├── futures v0.3.28
│ │ ├── futures-channel v0.3.28
│ │ │ ├── futures-core v0.3.28
│ │ │ └── futures-sink v0.3.28
│ │ ├── futures-core v0.3.28
│ │ ├── futures-executor v0.3.28
│ │ │ ├── futures-core v0.3.28
│ │ │ ├── futures-task v0.3.28
│ │ │ └── futures-util v0.3.28
│ │ │ ├── futures-channel v0.3.28 (
)
│ │ │ ├── futures-core v0.3.28
│ │ │ ├── futures-io v0.3.28
│ │ │ ├── futures-macro v0.3.28 (proc-macro)
│ │ │ │ ├── proc-macro2 v1.0.82 ()
│ │ │ │ ├── quote v1.0.36 (
)
│ │ │ │ └── syn v2.0.64 ()
│ │ │ ├── futures-sink v0.3.28
│ │ │ ├── futures-task v0.3.28
│ │ │ ├── memchr v2.5.0
│ │ │ ├── pin-project-lite v0.2.14
│ │ │ ├── pin-utils v0.1.0
│ │ │ └── slab v0.4.6
│ │ ├── futures-io v0.3.28
│ │ ├── futures-sink v0.3.28
│ │ ├── futures-task v0.3.28
│ │ └── futures-util v0.3.28 (
)
│ ├── humantime v2.1.0
│ ├── include_dir v0.7.3
│ │ └── include_dir_macros v0.7.3 (proc-macro)
│ │ ├── proc-macro2 v1.0.82 ()
│ │ └── quote v1.0.36 (
)
│ ├── interprocess v1.2.1
│ │ ├── blocking v1.2.0 ()
│ │ ├── cfg-if v1.0.0
│ │ ├── futures-core v0.3.28
│ │ ├── futures-io v0.3.28
│ │ ├── intmap v0.7.1
│ │ ├── libc v0.2.153
│ │ ├── once_cell v1.18.0
│ │ ├── spinning v0.1.0
│ │ │ └── lock_api v0.4.11
│ │ │ └── scopeguard v1.1.0
│ │ │ [build-dependencies]
│ │ │ └── autocfg v1.1.0
│ │ ├── thiserror v1.0.61 (
)
│ │ ├── to_method v1.1.0
│ │ └── winapi v0.3.9
│ │ [build-dependencies]
│ │ └── rustc_version v0.4.0
│ │ └── semver v1.0.17
│ ├── isahc v1.7.2
│ │ ├── async-channel v1.8.0 ()
│ │ ├── castaway v0.1.2
│ │ ├── crossbeam-utils v0.8.15 (
)
│ │ ├── curl v0.4.44
│ │ │ ├── curl-sys v0.4.68+curl-8.4.0 ()
│ │ │ ├── libc v0.2.153
│ │ │ ├── schannel v0.1.22
│ │ │ │ └── windows-sys v0.48.0 (
)
│ │ │ ├── socket2 v0.4.9 ()
│ │ │ └── winapi v0.3.9
│ │ ├── curl-sys v0.4.68+curl-8.4.0 (
)
│ │ ├── encoding_rs v0.8.34
│ │ │ └── cfg-if v1.0.0
│ │ ├── event-listener v2.5.2
│ │ ├── futures-lite v1.13.0 ()
│ │ ├── http v0.2.9
│ │ │ ├── bytes v1.6.0
│ │ │ ├── fnv v1.0.7
│ │ │ └── itoa v1.0.2
│ │ ├── log v0.4.17 (
)
│ │ ├── mime v0.3.17
│ │ ├── once_cell v1.18.0
│ │ ├── polling v2.2.0 ()
│ │ ├── slab v0.4.6
│ │ ├── sluice v0.5.5
│ │ │ ├── async-channel v1.8.0 (
)
│ │ │ ├── futures-core v0.3.28
│ │ │ └── futures-io v0.3.28
│ │ ├── tracing v0.1.35
│ │ │ ├── cfg-if v1.0.0
│ │ │ ├── log v0.4.17 ()
│ │ │ ├── pin-project-lite v0.2.14
│ │ │ ├── tracing-attributes v0.1.21 (proc-macro)
│ │ │ │ ├── proc-macro2 v1.0.82 (
)
│ │ │ │ ├── quote v1.0.36 ()
│ │ │ │ └── syn v1.0.96 (
)
│ │ │ └── tracing-core v0.1.27
│ │ │ └── once_cell v1.18.0
│ │ ├── tracing-futures v0.2.5
│ │ │ ├── pin-project v1.1.3
│ │ │ │ └── pin-project-internal v1.1.3 (proc-macro)
│ │ │ │ ├── proc-macro2 v1.0.82 ()
│ │ │ │ ├── quote v1.0.36 (
)
│ │ │ │ └── syn v2.0.64 ()
│ │ │ └── tracing v0.1.35 (
)
│ │ ├── url v2.5.0 ()
│ │ └── waker-fn v1.1.0
│ ├── kdl v4.5.0
│ │ ├── miette v5.8.0
│ │ │ ├── backtrace v0.3.65 (
)
│ │ │ ├── backtrace-ext v0.2.1
│ │ │ │ └── backtrace v0.3.65 ()
│ │ │ ├── is-terminal v0.4.7
│ │ │ │ ├── io-lifetimes v1.0.10 (
)
│ │ │ │ └── windows-sys v0.48.0 ()
│ │ │ ├── miette-derive v5.8.0 (proc-macro)
│ │ │ │ ├── proc-macro2 v1.0.82 (
)
│ │ │ │ ├── quote v1.0.36 ()
│ │ │ │ └── syn v2.0.64 (
)
│ │ │ ├── once_cell v1.18.0
│ │ │ ├── owo-colors v3.4.0
│ │ │ ├── supports-color v2.0.0
│ │ │ │ ├── is-terminal v0.4.7 ()
│ │ │ │ └── is_ci v1.1.1
│ │ │ ├── supports-hyperlinks v2.1.0
│ │ │ │ └── is-terminal v0.4.7 (
)
│ │ │ ├── supports-unicode v2.0.0
│ │ │ │ └── is-terminal v0.4.7 ()
│ │ │ ├── terminal_size v0.1.17 (
)
│ │ │ ├── textwrap v0.15.0 ()
│ │ │ ├── thiserror v1.0.61 (
)
│ │ │ └── unicode-width v0.1.10
│ │ ├── nom v7.1.1
│ │ │ ├── memchr v2.5.0
│ │ │ └── minimal-lexical v0.2.1
│ │ └── thiserror v1.0.61 ()
│ ├── lazy_static v1.4.0
│ ├── libc v0.2.153
│ ├── log v0.4.17 (
)
│ ├── log4rs v1.2.0
│ │ ├── anyhow v1.0.71 ()
│ │ ├── arc-swap v1.5.0
│ │ ├── chrono v0.4.19
│ │ │ ├── libc v0.2.153
│ │ │ ├── num-integer v0.1.45
│ │ │ │ └── num-traits v0.2.15
│ │ │ │ [build-dependencies]
│ │ │ │ └── autocfg v1.1.0
│ │ │ │ [build-dependencies]
│ │ │ │ └── autocfg v1.1.0
│ │ │ ├── num-traits v0.2.15 (
)
│ │ │ ├── time v0.1.44
│ │ │ │ ├── libc v0.2.153
│ │ │ │ └── winapi v0.3.9
│ │ │ └── winapi v0.3.9
│ │ ├── derivative v2.2.0 (proc-macro)
│ │ │ ├── proc-macro2 v1.0.82 ()
│ │ │ ├── quote v1.0.36 (
)
│ │ │ └── syn v1.0.96 ()
│ │ ├── fnv v1.0.7
│ │ ├── humantime v2.1.0
│ │ ├── log v0.4.17 (
)
│ │ ├── log-mdc v0.1.0
│ │ ├── parking_lot v0.12.1
│ │ │ ├── lock_api v0.4.11 ()
│ │ │ └── parking_lot_core v0.9.9
│ │ │ ├── cfg-if v1.0.0
│ │ │ ├── smallvec v1.13.2
│ │ │ │ └── serde v1.0.202 (
)
│ │ │ └── windows-targets v0.48.0 ()
│ │ ├── serde v1.0.202 (
)
│ │ ├── serde-value v0.7.0
│ │ │ ├── ordered-float v2.10.0
│ │ │ │ └── num-traits v0.2.15 ()
│ │ │ └── serde v1.0.202 (
)
│ │ ├── serde_json v1.0.81 ()
│ │ ├── serde_yaml v0.8.24 (
)
│ │ ├── thiserror v1.0.61 ()
│ │ ├── thread-id v4.0.0
│ │ │ └── winapi v0.3.9
│ │ ├── typemap-ors v1.0.0
│ │ │ └── unsafe-any-ors v1.0.0
│ │ │ └── destructure_traitobject v0.2.0
│ │ └── winapi v0.3.9
│ ├── miette v5.8.0 (
)
│ ├── nix v0.23.1
│ │ ├── bitflags v1.3.2
│ │ ├── cfg-if v1.0.0
│ │ ├── libc v0.2.153
│ │ └── memoffset v0.6.5 ()
│ ├── notify-debouncer-full v0.1.0
│ │ ├── crossbeam-channel v0.5.4 (
)
│ │ ├── file-id v0.1.0
│ │ │ └── winapi-util v0.1.5 ()
│ │ ├── notify v6.0.0
│ │ │ ├── bitflags v1.3.2
│ │ │ ├── crossbeam-channel v0.5.4 (
)
│ │ │ ├── filetime v0.2.21
│ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ └── windows-sys v0.48.0 ()
│ │ │ ├── libc v0.2.153
│ │ │ ├── walkdir v2.3.3
│ │ │ │ ├── same-file v1.0.6
│ │ │ │ │ └── winapi-util v0.1.5 (
)
│ │ │ │ └── winapi-util v0.1.5 ()
│ │ │ └── windows-sys v0.45.0 (
)
│ │ ├── parking_lot v0.12.1 ()
│ │ └── walkdir v2.3.3 (
)
│ ├── once_cell v1.18.0
│ ├── openssl-sys v0.9.93
│ │ └── libc v0.2.153
│ │ [build-dependencies]
│ │ ├── cc v1.0.83 ()
│ │ ├── openssl-src v300.1.6+3.1.4
│ │ │ └── cc v1.0.83 (
)
│ │ ├── pkg-config v0.3.25
│ │ └── vcpkg v0.2.15
│ ├── percent-encoding v2.3.1
│ ├── prost v0.11.9
│ │ ├── bytes v1.6.0
│ │ └── prost-derive v0.11.9 (proc-macro)
│ │ ├── anyhow v1.0.71
│ │ ├── itertools v0.10.5
│ │ │ └── either v1.6.1
│ │ ├── proc-macro2 v1.0.82 ()
│ │ ├── quote v1.0.36 (
)
│ │ └── syn v1.0.96 ()
│ ├── regex v1.8.1 (
)
│ ├── rmp-serde v1.1.0
│ │ ├── byteorder v1.4.3
│ │ ├── rmp v0.8.11
│ │ │ ├── byteorder v1.4.3
│ │ │ ├── num-traits v0.2.15 ()
│ │ │ └── paste v1.0.7 (proc-macro)
│ │ └── serde v1.0.202 (
)
│ ├── serde v1.0.202 ()
│ ├── serde_json v1.0.81 (
)
│ ├── shellexpand v3.0.0
│ │ └── dirs v4.0.0
│ │ └── dirs-sys v0.3.7
│ │ └── winapi v0.3.9
│ ├── signal-hook v0.3.14
│ │ ├── libc v0.2.153
│ │ └── signal-hook-registry v1.4.0
│ │ └── libc v0.2.153
│ ├── strip-ansi-escapes v0.1.1
│ │ └── vte v0.10.1
│ │ ├── arrayvec v0.5.2
│ │ ├── utf8parse v0.2.0
│ │ └── vte_generate_state_changes v0.1.1 (proc-macro)
│ │ ├── proc-macro2 v1.0.82 ()
│ │ └── quote v1.0.36 (
)
│ ├── strum v0.20.0
│ ├── strum_macros v0.20.1 (proc-macro)
│ │ ├── heck v0.3.3
│ │ │ └── unicode-segmentation v1.9.0
│ │ ├── proc-macro2 v1.0.82 ()
│ │ ├── quote v1.0.36 (
)
│ │ └── syn v1.0.96 ()
│ ├── tempfile v3.10.1 (
)
│ ├── termwiz v0.22.0
│ │ ├── anyhow v1.0.71 ()
│ │ ├── base64 v0.21.0
│ │ ├── bitflags v2.5.0
│ │ ├── fancy-regex v0.11.0
│ │ │ ├── bit-set v0.5.3
│ │ │ │ └── bit-vec v0.6.3
│ │ │ └── regex v1.8.1 (
)
│ │ ├── filedescriptor v0.8.2
│ │ │ ├── libc v0.2.153
│ │ │ ├── thiserror v1.0.61 ()
│ │ │ └── winapi v0.3.9
│ │ ├── finl_unicode v1.2.0
│ │ ├── fixedbitset v0.4.2
│ │ ├── hex v0.4.3
│ │ ├── lazy_static v1.4.0
│ │ ├── libc v0.2.153
│ │ ├── log v0.4.17 (
)
│ │ ├── memmem v0.1.1
│ │ ├── num-derive v0.3.3 (proc-macro)
│ │ │ ├── proc-macro2 v1.0.82 ()
│ │ │ ├── quote v1.0.36 (
)
│ │ │ └── syn v1.0.96 ()
│ │ ├── num-traits v0.2.15 (
)
│ │ ├── ordered-float v4.2.0
│ │ │ └── num-traits v0.2.15 ()
│ │ ├── pest v2.1.3
│ │ │ └── ucd-trie v0.1.3
│ │ ├── pest_derive v2.1.0 (proc-macro)
│ │ │ ├── pest v2.1.3 (
)
│ │ │ └── pest_generator v2.1.3
│ │ │ ├── pest v2.1.3 ()
│ │ │ ├── pest_meta v2.1.3
│ │ │ │ ├── maplit v1.0.2
│ │ │ │ └── pest v2.1.3 (
)
│ │ │ │ [build-dependencies]
│ │ │ │ └── sha-1 v0.8.2
│ │ │ │ ├── block-buffer v0.7.3
│ │ │ │ │ ├── block-padding v0.1.5
│ │ │ │ │ │ └── byte-tools v0.3.1
│ │ │ │ │ ├── byte-tools v0.3.1
│ │ │ │ │ ├── byteorder v1.4.3
│ │ │ │ │ └── generic-array v0.12.4
│ │ │ │ │ └── typenum v1.15.0
│ │ │ │ ├── digest v0.8.1
│ │ │ │ │ └── generic-array v0.12.4 ()
│ │ │ │ ├── fake-simd v0.1.2
│ │ │ │ └── opaque-debug v0.2.3
│ │ │ ├── proc-macro2 v1.0.82 (
)
│ │ │ ├── quote v1.0.36 ()
│ │ │ └── syn v1.0.96 (
)
│ │ ├── phf v0.11.1
│ │ │ ├── phf_macros v0.11.1 (proc-macro)
│ │ │ │ ├── phf_generator v0.11.1
│ │ │ │ │ ├── phf_shared v0.11.1
│ │ │ │ │ │ └── siphasher v0.3.10
│ │ │ │ │ └── rand v0.8.5
│ │ │ │ │ └── rand_core v0.6.3
│ │ │ │ ├── phf_shared v0.11.1 ()
│ │ │ │ ├── proc-macro2 v1.0.82 (
)
│ │ │ │ ├── quote v1.0.36 ()
│ │ │ │ └── syn v1.0.96 (
)
│ │ │ └── phf_shared v0.11.1
│ │ │ └── siphasher v0.3.10
│ │ ├── semver v0.11.0
│ │ │ └── semver-parser v0.10.2
│ │ │ └── pest v2.1.3 ()
│ │ ├── sha2 v0.10.8
│ │ │ ├── cfg-if v1.0.0
│ │ │ ├── cpufeatures v0.2.2
│ │ │ └── digest v0.10.7
│ │ │ ├── block-buffer v0.10.4
│ │ │ │ └── generic-array v0.14.5
│ │ │ │ └── typenum v1.15.0
│ │ │ │ [build-dependencies]
│ │ │ │ └── version_check v0.9.4
│ │ │ └── crypto-common v0.1.6
│ │ │ ├── generic-array v0.14.5 (
)
│ │ │ └── typenum v1.15.0
│ │ ├── siphasher v0.3.10
│ │ ├── tempfile v3.10.1 ()
│ │ ├── terminfo v0.8.0
│ │ │ ├── dirs v4.0.0 (
)
│ │ │ ├── fnv v1.0.7
│ │ │ ├── nom v7.1.1 ()
│ │ │ └── phf v0.11.1 (
)
│ │ │ [build-dependencies]
│ │ │ └── phf_codegen v0.11.2
│ │ │ ├── phf_generator v0.11.1 ()
│ │ │ └── phf_shared v0.11.1 (
)
│ │ ├── thiserror v1.0.61 ()
│ │ ├── ucd-trie v0.1.3
│ │ ├── unicode-segmentation v1.9.0
│ │ ├── vtparse v0.6.2
│ │ │ └── utf8parse v0.2.0
│ │ ├── wezterm-bidi v0.2.2
│ │ │ ├── log v0.4.17 (
)
│ │ │ └── wezterm-dynamic v0.1.0
│ │ │ ├── log v0.4.17 ()
│ │ │ ├── ordered-float v3.3.0
│ │ │ │ └── num-traits v0.2.15 (
)
│ │ │ ├── strsim v0.10.0
│ │ │ ├── thiserror v1.0.61 ()
│ │ │ └── wezterm-dynamic-derive v0.1.0 (proc-macro)
│ │ │ ├── proc-macro2 v1.0.82 (
)
│ │ │ ├── quote v1.0.36 ()
│ │ │ └── syn v1.0.96 (
)
│ │ ├── wezterm-blob-leases v0.1.0
│ │ │ ├── getrandom v0.2.10 ()
│ │ │ ├── mac_address v1.1.6
│ │ │ │ └── winapi v0.3.9
│ │ │ ├── once_cell v1.18.0
│ │ │ ├── sha2 v0.10.8 (
)
│ │ │ ├── thiserror v1.0.61 ()
│ │ │ └── uuid v1.7.0
│ │ │ ├── atomic v0.5.3
│ │ │ ├── getrandom v0.2.10 (
)
│ │ │ └── serde v1.0.202 ()
│ │ ├── wezterm-color-types v0.3.0
│ │ │ ├── csscolorparser v0.6.2
│ │ │ │ ├── lab v0.11.0
│ │ │ │ └── phf v0.11.1 (
)
│ │ │ ├── deltae v0.3.0
│ │ │ ├── lazy_static v1.4.0
│ │ │ └── wezterm-dynamic v0.2.0
│ │ │ ├── log v0.4.17 ()
│ │ │ ├── ordered-float v4.2.0 (
)
│ │ │ ├── strsim v0.10.0
│ │ │ ├── thiserror v1.0.61 ()
│ │ │ └── wezterm-dynamic-derive v0.1.0 (proc-macro) (
)
│ │ ├── wezterm-dynamic v0.2.0 ()
│ │ ├── wezterm-input-types v0.1.0
│ │ │ ├── bitflags v1.3.2
│ │ │ ├── euclid v0.22.9
│ │ │ │ └── num-traits v0.2.15 (
)
│ │ │ ├── lazy_static v1.4.0
│ │ │ └── wezterm-dynamic v0.2.0 ()
│ │ └── winapi v0.3.9
│ ├── thiserror v1.0.61 (
)
│ ├── unicode-width v0.1.10
│ ├── url v2.5.0 ()
│ ├── uuid v1.7.0 (
)
│ └── vte v0.11.0
│ ├── utf8parse v0.2.0
│ └── vte_generate_state_changes v0.1.1 (proc-macro) ()
│ [build-dependencies]
│ └── prost-build v0.11.9
│ ├── bytes v1.6.0
│ ├── heck v0.4.0
│ ├── itertools v0.10.5 (
)
│ ├── lazy_static v1.4.0
│ ├── log v0.4.17
│ │ └── cfg-if v1.0.0
│ ├── multimap v0.8.3
│ ├── petgraph v0.6.3
│ │ ├── fixedbitset v0.4.2
│ │ └── indexmap v1.8.2 ()
│ ├── prettyplease v0.1.25
│ │ ├── proc-macro2 v1.0.82 (
)
│ │ └── syn v1.0.96 ()
│ ├── prost v0.11.9
│ │ ├── bytes v1.6.0
│ │ └── prost-derive v0.11.9 (proc-macro) (
)
│ ├── prost-types v0.11.9
│ │ └── prost v0.11.9 ()
│ ├── regex v1.8.1 (
)
│ ├── syn v1.0.96 ()
│ ├── tempfile v3.10.1 (
)
│ └── which v4.2.5
│ ├── either v1.6.1
│ ├── lazy_static v1.4.0
│ └── libc v0.2.153
├── zellij-server v0.41.0 (C:\Users\feng626\workspace\zellij\zellij-server)
│ ├── ansi_term v0.12.1
│ │ └── winapi v0.3.9
│ ├── arrayvec v0.7.2
│ ├── async-trait v0.1.80 (proc-macro)
│ │ ├── proc-macro2 v1.0.82 ()
│ │ ├── quote v1.0.36 (
)
│ │ └── syn v2.0.64 ()
│ ├── base64 v0.13.0
│ ├── byteorder v1.4.3
│ ├── bytes v1.6.0
│ ├── cassowary v0.3.0
│ ├── chrono v0.4.19 (
)
│ ├── close_fds v0.3.2
│ │ ├── cfg-if v1.0.0
│ │ └── libc v0.2.153
│ ├── daemonize v0.5.0
│ │ └── libc v0.2.153
│ ├── highway v0.6.4
│ ├── log v0.4.17 ()
│ ├── semver v0.11.0 (
)
│ ├── serde_json v1.0.81 ()
│ ├── sixel-image v0.1.0
│ │ └── sixel-tokenizer v0.1.0
│ │ ├── arrayvec v0.7.2
│ │ └── thiserror v1.0.61 (
)
│ ├── sixel-tokenizer v0.1.0 ()
│ ├── sysinfo v0.22.5
│ │ ├── cfg-if v1.0.0
│ │ ├── libc v0.2.153
│ │ ├── ntapi v0.3.7 (
)
│ │ ├── once_cell v1.18.0
│ │ ├── rayon v1.5.3
│ │ │ ├── crossbeam-deque v0.8.1 ()
│ │ │ ├── either v1.6.1
│ │ │ └── rayon-core v1.9.3
│ │ │ ├── crossbeam-channel v0.5.4 (
)
│ │ │ ├── crossbeam-deque v0.8.1 ()
│ │ │ ├── crossbeam-utils v0.8.15 (
)
│ │ │ └── num_cpus v1.13.1
│ │ │ [build-dependencies]
│ │ │ └── autocfg v1.1.0
│ │ └── winapi v0.3.9
│ ├── typetag v0.1.8
│ │ ├── erased-serde v0.3.20
│ │ │ └── serde v1.0.202 ()
│ │ ├── inventory v0.2.3
│ │ │ ├── ctor v0.1.22 (proc-macro) (
)
│ │ │ └── ghost v0.1.4 (proc-macro)
│ │ │ ├── proc-macro2 v1.0.82 ()
│ │ │ ├── quote v1.0.36 (
)
│ │ │ └── syn v1.0.96 ()
│ │ ├── once_cell v1.18.0
│ │ ├── serde v1.0.202 (
)
│ │ └── typetag-impl v0.1.8 (proc-macro)
│ │ ├── proc-macro2 v1.0.82 ()
│ │ ├── quote v1.0.36 (
)
│ │ └── syn v1.0.96 ()
│ ├── unicode-width v0.1.10
│ ├── url v2.5.0 (
)
│ ├── uuid v1.7.0 ()
│ ├── wasmtime v21.0.2
│ │ ├── addr2line v0.21.0
│ │ │ └── gimli v0.28.1
│ │ │ └── indexmap v2.2.6
│ │ │ ├── equivalent v1.0.1
│ │ │ ├── hashbrown v0.14.5
│ │ │ │ └── ahash v0.8.11
│ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ ├── once_cell v1.18.0
│ │ │ │ └── zerocopy v0.7.34
│ │ │ │ [build-dependencies]
│ │ │ │ └── version_check v0.9.4
│ │ │ └── serde v1.0.202 (
)
│ │ ├── anyhow v1.0.71 ()
│ │ ├── async-trait v0.1.80 (proc-macro) (
)
│ │ ├── bumpalo v3.16.0
│ │ ├── cfg-if v1.0.0
│ │ ├── encoding_rs v0.8.34 ()
│ │ ├── gimli v0.28.1 (
)
│ │ ├── hashbrown v0.14.5 ()
│ │ ├── indexmap v2.2.6 (
)
│ │ ├── libc v0.2.153
│ │ ├── libm v0.2.8
│ │ ├── log v0.4.17 ()
│ │ ├── memoffset v0.9.1
│ │ │ [build-dependencies]
│ │ │ └── autocfg v1.1.0
│ │ ├── object v0.33.0
│ │ │ ├── crc32fast v1.4.0
│ │ │ │ └── cfg-if v1.0.0
│ │ │ ├── hashbrown v0.14.5 (
)
│ │ │ ├── indexmap v2.2.6 ()
│ │ │ └── memchr v2.5.0
│ │ ├── once_cell v1.18.0
│ │ ├── paste v1.0.7 (proc-macro)
│ │ ├── postcard v1.0.8
│ │ │ ├── cobs v0.2.3
│ │ │ ├── embedded-io v0.4.0
│ │ │ └── serde v1.0.202 (
)
│ │ ├── rayon v1.5.3 ()
│ │ ├── semver v1.0.17
│ │ ├── serde v1.0.202 (
)
│ │ ├── serde_derive v1.0.202 (proc-macro) ()
│ │ ├── smallvec v1.13.2 (
)
│ │ ├── sptr v0.3.2
│ │ ├── target-lexicon v0.12.14
│ │ ├── wasmparser v0.207.0
│ │ │ ├── ahash v0.8.11 ()
│ │ │ ├── bitflags v2.5.0
│ │ │ ├── hashbrown v0.14.5 (
)
│ │ │ ├── indexmap v2.2.6 ()
│ │ │ └── semver v1.0.17
│ │ ├── wasmtime-asm-macros v21.0.2
│ │ │ └── cfg-if v1.0.0
│ │ ├── wasmtime-cache v21.0.2
│ │ │ ├── anyhow v1.0.71 (
)
│ │ │ ├── base64 v0.21.0
│ │ │ ├── directories-next v2.0.0
│ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ └── dirs-sys-next v0.1.2
│ │ │ │ └── winapi v0.3.9
│ │ │ ├── log v0.4.17 ()
│ │ │ ├── postcard v1.0.8 (
)
│ │ │ ├── serde v1.0.202 ()
│ │ │ ├── serde_derive v1.0.202 (proc-macro) (
)
│ │ │ ├── sha2 v0.10.8 ()
│ │ │ ├── toml v0.8.13
│ │ │ │ ├── serde v1.0.202 (
)
│ │ │ │ ├── serde_spanned v0.6.6
│ │ │ │ │ └── serde v1.0.202 ()
│ │ │ │ ├── toml_datetime v0.6.6
│ │ │ │ │ └── serde v1.0.202 (
)
│ │ │ │ └── toml_edit v0.22.13
│ │ │ │ ├── indexmap v2.2.6 ()
│ │ │ │ ├── serde v1.0.202 (
)
│ │ │ │ ├── serde_spanned v0.6.6 ()
│ │ │ │ ├── toml_datetime v0.6.6 (
)
│ │ │ │ └── winnow v0.6.8
│ │ │ ├── windows-sys v0.52.0 ()
│ │ │ └── zstd v0.13.1
│ │ │ └── zstd-safe v7.1.0
│ │ │ └── zstd-sys v2.0.10+zstd.1.5.6
│ │ │ [build-dependencies]
│ │ │ ├── cc v1.0.83 (
)
│ │ │ └── pkg-config v0.3.25
│ │ ├── wasmtime-component-macro v21.0.2 (proc-macro)
│ │ │ ├── anyhow v1.0.71
│ │ │ ├── proc-macro2 v1.0.82 ()
│ │ │ ├── quote v1.0.36 (
)
│ │ │ ├── syn v2.0.64 ()
│ │ │ ├── wasmtime-component-util v21.0.2
│ │ │ ├── wasmtime-wit-bindgen v21.0.2
│ │ │ │ ├── anyhow v1.0.71
│ │ │ │ ├── heck v0.4.0
│ │ │ │ ├── indexmap v2.2.6
│ │ │ │ │ ├── equivalent v1.0.1
│ │ │ │ │ ├── hashbrown v0.14.5 (
)
│ │ │ │ │ └── serde v1.0.202
│ │ │ │ └── wit-parser v0.207.0
│ │ │ │ ├── anyhow v1.0.71
│ │ │ │ ├── id-arena v2.2.1
│ │ │ │ ├── indexmap v2.2.6 ()
│ │ │ │ ├── log v0.4.17 (
)
│ │ │ │ ├── semver v1.0.17
│ │ │ │ ├── serde v1.0.202
│ │ │ │ ├── serde_derive v1.0.202 (proc-macro) ()
│ │ │ │ ├── serde_json v1.0.81 (
)
│ │ │ │ ├── unicode-xid v0.2.4
│ │ │ │ └── wasmparser v0.207.0 ()
│ │ │ └── wit-parser v0.207.0 (
)
│ │ ├── wasmtime-component-util v21.0.2
│ │ ├── wasmtime-cranelift v21.0.2
│ │ │ ├── anyhow v1.0.71 ()
│ │ │ ├── cfg-if v1.0.0
│ │ │ ├── cranelift-codegen v0.108.2
│ │ │ │ ├── bumpalo v3.16.0
│ │ │ │ ├── cranelift-bforest v0.108.2
│ │ │ │ │ └── cranelift-entity v0.108.2
│ │ │ │ │ ├── serde v1.0.202 (
)
│ │ │ │ │ └── serde_derive v1.0.202 (proc-macro) ()
│ │ │ │ ├── cranelift-codegen-shared v0.108.2
│ │ │ │ ├── cranelift-control v0.108.2
│ │ │ │ │ └── arbitrary v1.3.2
│ │ │ │ ├── cranelift-entity v0.108.2 (
)
│ │ │ │ ├── gimli v0.28.1 ()
│ │ │ │ ├── hashbrown v0.14.5 (
)
│ │ │ │ ├── log v0.4.17 ()
│ │ │ │ ├── regalloc2 v0.9.3
│ │ │ │ │ ├── hashbrown v0.13.2
│ │ │ │ │ │ └── ahash v0.8.11 (
)
│ │ │ │ │ ├── log v0.4.17 ()
│ │ │ │ │ ├── rustc-hash v1.1.0
│ │ │ │ │ ├── slice-group-by v0.3.1
│ │ │ │ │ └── smallvec v1.13.2 (
)
│ │ │ │ ├── rustc-hash v1.1.0
│ │ │ │ ├── smallvec v1.13.2 ()
│ │ │ │ └── target-lexicon v0.12.14
│ │ │ │ [build-dependencies]
│ │ │ │ ├── cranelift-codegen-meta v0.108.2
│ │ │ │ │ └── cranelift-codegen-shared v0.108.2
│ │ │ │ └── cranelift-isle v0.108.2
│ │ │ ├── cranelift-control v0.108.2 (
)
│ │ │ ├── cranelift-entity v0.108.2 ()
│ │ │ ├── cranelift-frontend v0.108.2
│ │ │ │ ├── cranelift-codegen v0.108.2 (
)
│ │ │ │ ├── log v0.4.17 ()
│ │ │ │ ├── smallvec v1.13.2 (
)
│ │ │ │ └── target-lexicon v0.12.14
│ │ │ ├── cranelift-native v0.108.2
│ │ │ │ ├── cranelift-codegen v0.108.2 ()
│ │ │ │ └── target-lexicon v0.12.14
│ │ │ ├── cranelift-wasm v0.108.2
│ │ │ │ ├── cranelift-codegen v0.108.2 (
)
│ │ │ │ ├── cranelift-entity v0.108.2 ()
│ │ │ │ ├── cranelift-frontend v0.108.2 (
)
│ │ │ │ ├── itertools v0.12.1
│ │ │ │ │ └── either v1.6.1
│ │ │ │ ├── log v0.4.17 ()
│ │ │ │ ├── smallvec v1.13.2 (
)
│ │ │ │ ├── wasmparser v0.207.0 ()
│ │ │ │ └── wasmtime-types v21.0.2
│ │ │ │ ├── cranelift-entity v0.108.2 (
)
│ │ │ │ ├── serde v1.0.202 ()
│ │ │ │ ├── serde_derive v1.0.202 (proc-macro) (
)
│ │ │ │ ├── smallvec v1.13.2 ()
│ │ │ │ └── wasmparser v0.207.0 (
)
│ │ │ ├── gimli v0.28.1 ()
│ │ │ ├── log v0.4.17 (
)
│ │ │ ├── object v0.33.0 ()
│ │ │ ├── target-lexicon v0.12.14
│ │ │ ├── thiserror v1.0.61 (
)
│ │ │ ├── wasmparser v0.207.0 ()
│ │ │ ├── wasmtime-environ v21.0.2
│ │ │ │ ├── anyhow v1.0.71 (
)
│ │ │ │ ├── cpp_demangle v0.4.3
│ │ │ │ │ └── cfg-if v1.0.0
│ │ │ │ ├── cranelift-entity v0.108.2 ()
│ │ │ │ ├── gimli v0.28.1 (
)
│ │ │ │ ├── indexmap v2.2.6 ()
│ │ │ │ ├── log v0.4.17 (
)
│ │ │ │ ├── object v0.33.0 ()
│ │ │ │ ├── postcard v1.0.8 (
)
│ │ │ │ ├── rustc-demangle v0.1.21
│ │ │ │ ├── serde v1.0.202 ()
│ │ │ │ ├── serde_derive v1.0.202 (proc-macro) (
)
│ │ │ │ ├── target-lexicon v0.12.14
│ │ │ │ ├── wasm-encoder v0.207.0
│ │ │ │ │ └── leb128 v0.2.5
│ │ │ │ ├── wasmparser v0.207.0 ()
│ │ │ │ ├── wasmprinter v0.207.0
│ │ │ │ │ ├── anyhow v1.0.71 (
)
│ │ │ │ │ └── wasmparser v0.207.0 ()
│ │ │ │ ├── wasmtime-component-util v21.0.2
│ │ │ │ └── wasmtime-types v21.0.2 (
)
│ │ │ └── wasmtime-versioned-export-macros v21.0.2 (proc-macro)
│ │ │ ├── proc-macro2 v1.0.82 ()
│ │ │ ├── quote v1.0.36 (
)
│ │ │ └── syn v2.0.64 ()
│ │ ├── wasmtime-environ v21.0.2 (
)
│ │ ├── wasmtime-fiber v21.0.2
│ │ │ ├── anyhow v1.0.71 ()
│ │ │ ├── cfg-if v1.0.0
│ │ │ ├── wasmtime-versioned-export-macros v21.0.2 (proc-macro) (
)
│ │ │ └── windows-sys v0.52.0 ()
│ │ │ [build-dependencies]
│ │ │ ├── cc v1.0.83 (
)
│ │ │ └── wasmtime-versioned-export-macros v21.0.2 (proc-macro) ()
│ │ ├── wasmtime-jit-debug v21.0.2
│ │ │ ├── object v0.33.0 (
)
│ │ │ ├── once_cell v1.18.0
│ │ │ └── wasmtime-versioned-export-macros v21.0.2 (proc-macro) ()
│ │ ├── wasmtime-jit-icache-coherence v21.0.2
│ │ │ ├── anyhow v1.0.71 (
)
│ │ │ ├── cfg-if v1.0.0
│ │ │ └── windows-sys v0.52.0 ()
│ │ ├── wasmtime-slab v21.0.2
│ │ ├── wasmtime-versioned-export-macros v21.0.2 (proc-macro) (
)
│ │ └── windows-sys v0.52.0 ()
│ │ [build-dependencies]
│ │ ├── cc v1.0.83 (
)
│ │ └── wasmtime-versioned-export-macros v21.0.2 (proc-macro) ()
│ ├── wasmtime-wasi v21.0.2
│ │ ├── anyhow v1.0.71 (
)
│ │ ├── async-trait v0.1.80 (proc-macro) ()
│ │ ├── bitflags v2.5.0
│ │ ├── bytes v1.6.0
│ │ ├── cap-fs-ext v3.1.0
│ │ │ ├── cap-primitives v3.1.0
│ │ │ │ ├── ambient-authority v0.0.2
│ │ │ │ ├── fs-set-times v0.20.1
│ │ │ │ │ ├── io-lifetimes v2.0.3
│ │ │ │ │ └── windows-sys v0.52.0 (
)
│ │ │ │ ├── io-extras v0.18.2
│ │ │ │ │ ├── io-lifetimes v2.0.3
│ │ │ │ │ └── windows-sys v0.52.0 ()
│ │ │ │ ├── io-lifetimes v2.0.3
│ │ │ │ ├── ipnet v2.9.0
│ │ │ │ ├── maybe-owned v0.3.4
│ │ │ │ ├── windows-sys v0.52.0 (
)
│ │ │ │ └── winx v0.36.3
│ │ │ │ ├── bitflags v2.5.0
│ │ │ │ └── windows-sys v0.52.0 ()
│ │ │ ├── cap-std v3.1.0
│ │ │ │ ├── cap-primitives v3.1.0 (
)
│ │ │ │ ├── io-extras v0.18.2 ()
│ │ │ │ └── io-lifetimes v2.0.3
│ │ │ ├── io-lifetimes v2.0.3
│ │ │ └── windows-sys v0.52.0 (
)
│ │ ├── cap-net-ext v3.1.0
│ │ │ ├── cap-primitives v3.1.0 ()
│ │ │ ├── cap-std v3.1.0 (
)
│ │ │ ├── rustix v0.38.34
│ │ │ │ ├── bitflags v2.5.0
│ │ │ │ ├── errno v0.3.8 ()
│ │ │ │ └── windows-sys v0.52.0 (
)
│ │ │ └── smallvec v1.13.2 ()
│ │ ├── cap-rand v3.1.0
│ │ │ ├── ambient-authority v0.0.2
│ │ │ └── rand v0.8.5 (
)
│ │ ├── cap-std v3.1.0 ()
│ │ ├── cap-time-ext v3.1.0
│ │ │ ├── ambient-authority v0.0.2
│ │ │ ├── cap-primitives v3.1.0 (
)
│ │ │ ├── iana-time-zone v0.1.60
│ │ │ │ └── windows-core v0.52.0
│ │ │ │ └── windows-targets v0.52.5 ()
│ │ │ ├── once_cell v1.18.0
│ │ │ └── winx v0.36.3 (
)
│ │ ├── fs-set-times v0.20.1 ()
│ │ ├── futures v0.3.28 (
)
│ │ ├── io-extras v0.18.2 ()
│ │ ├── io-lifetimes v2.0.3
│ │ ├── once_cell v1.18.0
│ │ ├── rustix v0.38.34 (
)
│ │ ├── system-interface v0.27.2
│ │ │ ├── bitflags v2.5.0
│ │ │ ├── cap-fs-ext v3.1.0 ()
│ │ │ ├── cap-std v3.1.0 (
)
│ │ │ ├── fd-lock v4.0.2
│ │ │ │ ├── cfg-if v1.0.0
│ │ │ │ └── windows-sys v0.52.0 ()
│ │ │ ├── io-lifetimes v2.0.3
│ │ │ ├── windows-sys v0.52.0 (
)
│ │ │ └── winx v0.36.3 ()
│ │ ├── thiserror v1.0.61 (
)
│ │ ├── tokio v1.37.0
│ │ │ ├── bytes v1.6.0
│ │ │ ├── mio v0.8.11
│ │ │ │ └── windows-sys v0.48.0 ()
│ │ │ ├── num_cpus v1.13.1
│ │ │ ├── pin-project-lite v0.2.14
│ │ │ ├── socket2 v0.5.7
│ │ │ │ └── windows-sys v0.52.0 (
)
│ │ │ └── windows-sys v0.48.0 ()
│ │ ├── tracing v0.1.35 (
)
│ │ ├── url v2.5.0 ()
│ │ ├── wasmtime v21.0.2 (
)
│ │ ├── wiggle v21.0.2
│ │ │ ├── anyhow v1.0.71 ()
│ │ │ ├── async-trait v0.1.80 (proc-macro) (
)
│ │ │ ├── bitflags v2.5.0
│ │ │ ├── thiserror v1.0.61 ()
│ │ │ ├── tracing v0.1.35 (
)
│ │ │ ├── wasmtime v21.0.2 ()
│ │ │ └── wiggle-macro v21.0.2 (proc-macro)
│ │ │ ├── proc-macro2 v1.0.82 (
)
│ │ │ ├── quote v1.0.36 ()
│ │ │ ├── syn v2.0.64 (
)
│ │ │ └── wiggle-generate v21.0.2
│ │ │ ├── anyhow v1.0.71
│ │ │ ├── heck v0.4.0
│ │ │ ├── proc-macro2 v1.0.82 ()
│ │ │ ├── quote v1.0.36 (
)
│ │ │ ├── shellexpand v2.1.2
│ │ │ │ └── dirs v4.0.0 ()
│ │ │ ├── syn v2.0.64 (
)
│ │ │ └── witx v0.9.1
│ │ │ ├── anyhow v1.0.71
│ │ │ ├── log v0.4.17 ()
│ │ │ ├── thiserror v1.0.61 (
)
│ │ │ └── wast v35.0.2
│ │ │ └── leb128 v0.2.5
│ │ └── windows-sys v0.52.0 ()
│ └── zellij-utils v0.41.0 (C:\Users\feng626\workspace\zellij\zellij-utils) (
)
└── zellij-utils v0.41.0 (C:\Users\feng626\workspace\zellij\zellij-utils) ()
[dev-dependencies]
├── insta v1.14.0
│ ├── console v0.15.0 (
)
│ ├── once_cell v1.18.0
│ ├── serde v1.0.202 ()
│ ├── serde_json v1.0.81 (
)
│ ├── serde_yaml v0.8.24 ()
│ └── similar v2.1.0
├── rand v0.8.5 (
)
├── regex v1.8.1 ()
└── ssh2 v0.9.3
├── bitflags v1.3.2
├── libc v0.2.153
├── libssh2-sys v0.2.23
│ ├── libc v0.2.153
│ └── libz-sys v1.1.8 (
)
│ [build-dependencies]
│ ├── cc v1.0.83 ()
│ ├── pkg-config v0.3.25
│ └── vcpkg v0.2.15
└── parking_lot v0.11.2
├── instant v0.1.12
│ └── cfg-if v1.0.0
├── lock_api v0.4.11 (
)
└── parking_lot_core v0.8.5
├── cfg-if v1.0.0
├── instant v0.1.12 ()
├── smallvec v1.13.2 (
)
└── winapi v0.3.9

@i2
Copy link

i2 commented Oct 31, 2024

@LifeWorks Please have this as spoilers, or some block that doesn't take the whole screen for this discussion!

@ritchielrez
Copy link

So why does Zellij not support Windows? Does it have to do with that some of the crates are Unix only or there are internal code that makes it hard to support Windows?

@heaths
Copy link

heaths commented Oct 31, 2024

So why does Zellij not support Windows? Does it have to do with that some of the crates are Unix only or there are internal code that makes it hard to support Windows?

@ritchielrez see #316 (comment). There are some other platform-specific concerns in this thread as well.

@LifeWorks
Copy link

@LifeWorks Please have this as spoilers, or some block that doesn't take the whole screen for this discussion!

Thanks for the advice, I didn't know about spoilers. Now it has been fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request hacktoberfest For the hacktoberfest month help wanted Extra attention is needed windows Windows specific
Projects
None yet
Development

Successfully merging a pull request may close this issue.