Close one workspace will close vscode complately.

Does this issue occur when all extensions are disabled?: Yes/No
YES

VS Code Version: Version: 1.77.3 (Universal)
OS Version: MacOS 13.3.1

Steps to Reproduce:

Open 2 workspaces then close VSCode
Open VSCode, the 2 workspaces should show, close the left workspace either by CMD-w or click the [x]

PS: This does not always happen, but when it happen it does happen repeatedly and is very annoying.
https://user-images.githubusercontent.com/3171920/233859825-a3d5e72d-5a84-4dd4-b142-cee2c38a6058.mov

Can you please follow the steps in https://github.com/Microsoft/vscode/wiki/Native-Crash-Issues to get at more details around the crash and attach the result here? Thanks!

Able to reproduce it with crash report: f36cfaea-3087-4633-a6cd-09b48ce68ddd.dmp.zip

Symbolicated:
symbolicated-f3.log
First 100 lines:
Operating system: Mac OS X
                  13.3.1 22E261
CPU: arm64
     8 CPUs

GPU: UNKNOWN

Crash reason:  EXC_BAD_ACCESS / KERN_INVALID_ADDRESS
Crash address: 0x65006d006f0118
Process uptime: 4 seconds

Thread 0 (crashed)
 0  Electron Framework!content::WebContentsImpl::GetNativeView() [unique_ptr.h : 284 + 0x0]
     x0 = 0x0065006d006f0068    x1 = 0x000000011627bdfe
     x2 = 0x000000011b308f30    x3 = 0x0000000129ed8820
     x4 = 0x000000011b308f30    x5 = 0x0000000000041c00
     x6 = 0x0000000000000001    x7 = 0x0000000000000001
     x8 = 0x0000000129eacf40    x9 = 0x000000011627bdfe
    x10 = 0x000000013a7b70de   x11 = 0x00000000000001ff
    x12 = 0x00000000000001fe   x13 = 0x000000013a907fd0
    x14 = 0x0600000116ccad25   x15 = 0x0000000116ccad20
    x16 = 0x0000000116ccad20   x17 = 0xeb570001100ac9dc
    x18 = 0x0000000000000000   x19 = 0x0000000129ed8820
    x20 = 0x000000011b308f30   x21 = 0x0000000129ed0002
    x22 = 0x0000000129ed8820   x23 = 0x0000000139e145e0
    x24 = 0x0000000000000000   x25 = 0x0000000000041c00
    x26 = 0x0000000000000000   x27 = 0x0000007a00000068
    x28 = 0x000000016f4331f8    fp = 0x000000016f433140
     lr = 0x00000001100aca18    sp = 0x000000016f433110
     pc = 0x00000001111b2364
    Found by: given as instruction pointer in context
 1  Electron Framework!-[ElectronInspectableWebContentsView viewDidBecomeFirstResponder:] [electron_inspectable_web_contents_view.mm : 271 + 0x0]
     fp = 0x000000016f433190    lr = 0x0000000182e3b254
     sp = 0x000000016f433150    pc = 0x00000001100aca18
    Found by: previous frame's frame pointer
 2  CoreFoundation!__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 0x90
     fp = 0x000000016f4331d0    lr = 0x0000000182ed6f30
     sp = 0x000000016f4331a0    pc = 0x0000000182e3b254
    Found by: previous frame's frame pointer
 3  0x464c800182ed6e74
    x19 = 0x0000000000000000   x20 = 0x000000016f433318
    x21 = 0xa7cf853764c5007b   x22 = 0x0000000000000000
    x23 = 0x0000000000000000   x24 = 0x000000011627bdfe
    x25 = 0xbb71000182ed6f30   x26 = 0x000000016f4331d0
     fp = 0x000000016f4332b0    sp = 0x000000016f4331e0
     pc = 0x464c800182ed6e78
    Found by: call frame info
 4  CoreFoundation!_CFXRegistrationPost + 0x1b4
     fp = 0x000000016f433c60    lr = 0x0000000182e0c580
     sp = 0x000000016f4332c0    pc = 0x0000000182ed6e78
    Found by: previous frame's frame pointer
 5  0x3d7c000183d699e0
    x19 = 0x0000000139e145d0   x20 = 0x000000011b308f30
    x21 = 0x000000012b0f8400   x22 = 0x0000000116c3b7b0
    x23 = 0x0000000116c3b7b0   x24 = 0x0000000000000000
    x25 = 0x00000000000000c8   x26 = 0x0000000000000000
    x27 = 0x000000a000000087   x28 = 0x000000016f433f48
     fp = 0x000000016f433c90    sp = 0x000000016f433c70
     pc = 0x3d7c000183d699e4
    Found by: call frame info
 6  Foundation!-[NSNotificationCenter postNotificationName:object:userInfo:] + 0x54
     fp = 0x000000016f433cf0    lr = 0x00000001112783d0
     sp = 0x000000016f433ca0    pc = 0x0000000183d699e4
    Found by: previous frame's frame pointer
 7  AppKit!-[NSWindow _realMakeFirstResponder:] + 0x164
    x19 = 0x000000012a8c5160   x20 = 0x000000012b0f8400
    x21 = 0x0000000000000001   x22 = 0x000000012a8c5160
     fp = 0x000000016f433d50    sp = 0x000000016f433d00
     pc = 0x0000000186155ae4
    Found by: call frame info
 8  0x314500011122fe58
    x19 = 0x000000012b0f6a00   x20 = 0xaaaaaaaaaaaaaaaa
    x21 = 0xaaaaaaaaaaaaaaaa   x22 = 0x0000000000000000
    x23 = 0x0000000139e145e0   x24 = 0x0000000000000000
    x25 = 0x0000000000041400   x26 = 0x0000000000000000
     fp = 0x000000016f433d70    sp = 0x000000016f433d60
     pc = 0x314500011122fe5c
    Found by: call frame info
 9  Electron Framework!content::RenderWidgetHostViewMac::Focus() [render_widget_host_view_mac.mm : 546 + 0x8]
     fp = 0x000000016f433dc0    lr = 0x00000001111b2684
     sp = 0x000000016f433d80    pc = 0x000000011122fe5c
    Found by: previous frame's frame pointer
10  Electron Framework!content::WebContentsImpl::RestoreFocus() [web_contents_impl.cc : 4936 + 0x8]
     fp = 0x000000016f433de0    lr = 0x000000010ff5a918
     sp = 0x000000016f433dd0    pc = 0x00000001111b2684
    Found by: previous frame's frame pointer
11  Electron Framework!non-virtual thunk to electron::api::BrowserWindow::OnWindowFocus() [electron_api_browser_window.cc : 305 + 0x0]
     fp = 0x000000016f433e70    lr = 0x000000011000a780
     sp = 0x000000016f433df0    pc = 0x000000010ff5a918
    Found by: previous frame's frame pointer
12  Electron Framework!electron::NativeWindow::NotifyWindowFocus() [native_window.cc : 529 + 0x8]
     fp = 0x000000016f433e90    lr = 0x00000001100af388
     sp = 0x000000016f433e80    pc = 0x000000011000a780
    Found by: previous frame's frame pointer
13  Electron Framework!-[ElectronNSWindowDelegate windowDidBecomeMain:] [electron_ns_window_delegate.mm : 102 + 0x0]
     fp = 0x000000016f433ee0    lr = 0x0000000182e3b254
     sp = 0x000000016f433ea0    pc = 0x00000001100af388
    Found by: previous frame's frame pointer
14  CoreFoundation!__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 0x90
     fp = 0x000000016f433f20    lr = 0x0000000182ed6f30

Merging to https://github.com/microsoft/vscode/issues/167936


Set up blog with gatsby

Functional review: @acka47
Code review: @sroertgen

I could review the code if wanted

I could review the code if wanted

Great, thanks, I added you abiove. It won't be a lot to review anyway. @katauber will set it up similar to https://github.com/metafacture/metafacture-blog.

From https://github.com/skohub-io/skohub.io/issues/15:

It should be running at https://blog.skohub.io. I suggest using Hugo , see https://gohugo.io/hosting-and-deployment/hosting-on-github/
We should copy the previous posts from lobid blog and add a link rel="canonical"  statement to both versions for the hypothes.is annotaitons, see https://web.hypothes.is/help/how-hypothesis-interacts-with-document-metadata/#link-relcanonical.

@acka47 please review.
Clone with branch 1-SetUpInitialBlog:
git clone -b 1-SetUpInitialBlog git@github.com:skohub-io/skohub-blog.git
and follow the instructions in the README.md to install and build the gatsby blog.
Feel free to change the contents of the blog.

@acka47 has reviewed here: https://github.com/skohub-io/skohub-blog/pull/2#issuecomment-878190942


Add vineyardd version to the metadata tree in etcd to ensure metadata consistent between versions

Describe your problem
Add a version check to avoid taking metadata created by an older version that may casue invalid metadata error in some cases.
Additional context
Add any other context about the problem here.

Closing as not needed as we have address the issue https://github.com/v6d-io/v6d/issues/935


AWS example

would it be worth adding documentation on how to run on AWS, like you've done with boot2docker for OSX?  I may have gotten completely mixed up, but this ended up working for me:
docker --daemon \
   	   --host=fd:// \
	   --dns <IP_ADDRESS> \
	   --dns $(awk '/^nameserver/{print $2}' /etc/resolv.conf) \
	   --dns-search service.consul \
	   $DOCKER_OPTS

the first --dns is docker0 veth, so the value tends to default to <IP_ADDRESS>.  The 2nd --dns gets the aws provided nameserver.  If you don't set this up, and use <IP_ADDRESS> per the documentation, you need to open up the :53 ports on the AWS VPC security groups and network acls.
@progrium what do you think?  If this smells right, I'll submit a PR to add this to the README.md
thanks!
EDIT: removed --dns $(ip ro | awk '/docker0/{print $9}') and replaced with --dns <IP_ADDRESS> as the docker0 bridge doesn't exist on initial boot

I don't think you'd get the expected results since the consul recursor is hardcoded as <IP_ADDRESS>
https://github.com/progrium/docker-consul/blob/master/config/consul.json#L8

yep!  I had to overload that as well.  The other option is to open up port 53 on your security groups and network acls to the VPC NAT instance.  Again, that probably would be worth adding into the docs, don't you think?

For now, until consul allows a cli --recursor flag, I've set my recursor as dnsmasq and am linking a dnsmasq container on docker run -link dnsmasq:dnsmasq. The dnsmasq container uses resolv.conf (from the host as docker provides) which resolves to the VPC dns.

We'll be adding an example using Terraform to run on AWS. Latest version doesn't have a buitlin recursor. We don't recommend using Consul for recursive lookups and instead putting it behind something like dnsmasq or resolvable.


DRY versions of __wait_for_task_failure and __wait_for_task_success

It looks like these could be refactored using __wait_for_task_complete, then look at the status?
Do there need to be 3 versions of essentially the same code?

PR #12 Will address this issue

merged to master


IBM Web Standard - v18 message implementation

Objective
This task is for the dev team to implement the blue message bar on the IBM Web Standard website, so the adopters know when the v18/v19 will be sunsetting.
Note

Design detail can be viewed via #673.
The message bar will stay above the lead space on all website pages.
The "View detail" tab will take adopters to the Get started/Overview page and please make sure it's landed at the "Legacy design systems are v19a, v18, and older (The sunset of the legacy systems will begin in the 4th quarter of 2021)" section (see reference below).

Sketch work file can be found here.

(Blue message bar design)

(Blue message bar specs)

(Blue message bar color)

Acceptance criteria

[ ] The blue message bar is implemented on the IBM Web Standard Website.

Hi @jeffchew, Check in to see if you need anything and how's the implementation going?

@asudoh added your name to this as it looks like you took this one on, thank you!

@asudoh Did you take a look at this?  Can I close or should I move it to the next sprint?
cc:  @jeffchew

@jeffchew Can you share the preview link here? I can help by taking a look as well.

@RobertaJHahn There is a PR that is ready for review: #720
@JennySanchez The deploy preview can be found at: https://ibmdotcom-library.s3.us-south.cloud-object-storage.appdomain.cloud/deploy-previews/720/

Hi @asudoh
When I view it via the deploy link provided above.

The deploy link is not working for me (see screenshot below).

When I view it via the link in PR #720.

The first time it worked. The blue bar looked ok but when I clicked on the "View detail" button, it did not take me to the "Get started" page but an error page.

When I tried to view it again via the preview link in #720, It took me to the Carbon for IBM.com homepage for some reason and I could no longer see the preview content.

@JennySanchez Thank you for testing it out!

when I clicked on the "View detail" button, it did not take me to the "Get started" page but an error page.

Looks that it's specific to our deploy preview environment, where URL referring to a directory yields to 404 (page not found) error instead of leading to index.html in the directory. Same URL under https://www.ibm.com/standards/web/carbon-for-ibm-dotcom works.

When I tried to view it again via the preview link in #720, It took me to the Carbon for IBM.com homepage for some reason and I could no longer see the preview content.

Carbon core website removes the banner for future access once user acts on the banner. I did the same, but let me know if you think the banner should be persistent. You can reset such state with Chrome DevTools' Applications tab.

Akira, Thank you for taking a look at the blue bar with me. As discussed, this Blue bar is for the IBM.com Web Standard website but not Carbon for the IBM.com website.

@asudoh Do you need anything else from me before I move this task issue to the Done column?

@JennySanchez Once the reviews of https://ibm.biz/BdqtN8 as well as one of #720 have been merged, we can close this issue. Thanks!

Perfect. Thanks.


iOS app never finishes building with SKIE 0.7.0

Questions:
What is the problem?
I added KSP to my project in order to use Room Multiplatform, and I noticed that the iOS app never finishes building when using SKIE 0.7.0
Building iOS app with SKIE 0.7.0 (never finishes building):

Building iOS app with SKIE 0.6.4 (9 seconds):

When does the problem occur?
During iOS build
How do we reproduce the issue?
I have created a test repository so you can reproduce it:
https://github.com/jarg-147/SKIE_KSP_Test
Gradle plugins in shared module:
alias(libs.plugins.skie.working)
alias(libs.plugins.skie.notworking)

What has changed since the last time SKIE worked in your project?

Add KSP plugin
Add Room dependencies
Upgrading SKIE version to 0.7.0
Add kotlin.native.disableCompilerDaemon = true in gradle.properties (Required by Room Multiplatform)

What versions of SKIE, Kotlin, and Gradle do you use?
SKIE: 0.6.4 - 0.7.0
Kotlin: 1.9.23

Please, let me know if I'm doing something wrong.
For the moment, I will continue using SKIE 0.6.4 🙂

Hi! Thanks for the sample repo. I was able to reproduce the issue and the primary cause is the kotlin.native.disableCompilerDaemon = true property.
This is most likely a bug in SKIE. I will let you know once we know what the issue is.

Fixed in 0.7.2.


Getting "Maximum call stack exceeded" when making circular ref with $ref

I am currently working on a project where we are splitting up a very large JSON schema. In doing so I am breaking up the definitions  into separate definition files/schemas. However when doing this I seem to be getting a stack over flow whenever one schema file refers to another (using IDs) that also refers back to it. What is odd is I have tested some simple examples doing the same thing but that do work. I was trying to make an example case to show here but was not able to make one to cause the same error. I have looked extensively for information about this and haven't been able to find anything. I also upgraded to AJV 4.1.2 and got the same error. I am adding all these schemas programmatically with "addSchema". They work fine when they are not circular but when they are circular it no longer works.
Is this just a limitation? Am I doing something wrong? Any help us appreciated. This is the looped call stack:
RangeError: Maximum call stack size exceeded
    at String.replace (native)
    at Url.format (url.js:413:23)
    at Url.parse (url.js:344:20)
    at Object.urlParse [as parse] (url.js:84:5)
    at Ajv._resolve (node_modules/ajv/lib/compile/resolve.js:62:15)
    at Ajv.resolve (node_modules/ajv/lib/compile/resolve.js:39:22)
    at Object.resolveRef (node_modules/ajv/lib/compile/index.js:128:21)
    at Object.generate_ref [as code] (node_modules/ajv/lib/dotjs/ref.js:22:22)
    at Object.generate_validate [as validate] (node_modules/ajv/lib/dotjs/validate.js:374:37)
    at Object.generate_allOf [as code] (node_modules/ajv/lib/dotjs/allOf.js:22:27)
    at Object.generate_validate [as validate] (node_modules/ajv/lib/dotjs/validate.js:374:37)
    at Object.generate_properties [as code] (node_modules/ajv/lib/dotjs/properties.js:198:26)
    at Object.generate_validate [as validate] (node_modules/ajv/lib/dotjs/validate.js:374:37)
    at Object.generate_allOf [as code] (node_modules/ajv/lib/dotjs/allOf.js:22:27)
    at generate_validate (node_modules/ajv/lib/dotjs/validate.js:374:37)
    at localCompile (node_modules/ajv/lib/compile/index.js:53:22)
    at Ajv.compile (node_modules/ajv/lib/compile/index.js:42:10)
    at Ajv.localCompile (node_modules/ajv/lib/compile/index.js:48:22)
    at Ajv.resolve (node_modules/ajv/lib/compile/resolve.js:52:19)
    at Object.resolveRef (node_modules/ajv/lib/compile/index.js:128:21)
    at Object.generate_ref [as code] (node_modules/ajv/lib/dotjs/ref.js:22:22)
    at Object.generate_validate [as validate] (node_modules/ajv/lib/dotjs/validate.js:374:37)
    at Object.generate_anyOf [as code] (node_modules/ajv/lib/dotjs/anyOf.js:34:27)

Even if schema is recursive it should have some branch(es) when the recursion stops, same as with functions. Otherwise you'll get stack overflow exception. Theoretically you can get this exception if your data is extremely deep, but all the cases of endless recursion I came across were with badly defined schemas. For example, this simple schema will cause stack overflow when you try to validate any data:
{
  "$ref": "#/definitions/recursive",
  "definitions": {
    "recursive": { "$ref": "#" }
  }
}

https://tonicdev.com/esp/575f2c68a580751300ba16f6
Some example of schema and data that fail would help to understand whether the issue is with your schema or with ajv. Maybe you can post a working example to https://tonicdev.com/ ?

Mutual recursion that you describe is supported, but you can get the same problem, if there is no branch that stops recursion (or if its condition is never satisfied).

Yes but if I have it in the same file it works. It only doesn't work when I separate it into separate schema. So shouldn't what you are describing not work for either method?

Not in all cases. References can resolve differently when you split the schema. Could you please post the example?

Or can be a bug of course, in any case if I can't reproduce, I can't fix.

Yep. I totally get what you are saying. The schema is more than 3k lines and I doubt I can share it. I was trying to make you a simple example to demonstrate it but I couldn't reproduce the error, so I must be missing something. I'll read your links and see what I can do, if I can't clear it up, I'll work more on a test case.

Can I email you the schema files?

sure, I'll have a look

Did you get the files? I sent them to your<EMAIL_ADDRESS>account. I want to make sure you go it because email with attached files sometimes don't always go through.

I didn't... Maybe email dropbox/google docs link?

Sent.

please add the code that fails too

Ok I added a tester file. It's not the same code we use but the code we are using has lots in it and probably would just take up more time and be confusing. I seem to be getting the same problem with the test code.
It works after removing
"caption": {
"$ref": "def#/definitions/text_assets"
}
From basicAssets.json. Just like the code we have does, so I am pretty sure it is showing the same issue.

Tell me if you  need anything else from me.

This is the minimal failing test case:
ajv.addSchema({
  "id" : "def",
  "definitions": {
    "text_assets": {
      "properties": {
        "asset": {
          "$ref": "asset_base#/definitions/asset_image"
        }
      }
    }
  }
});

ajv.addSchema({
  "id" : "asset_base",
  "definitions": {
    "asset_image": {
      "properties": {
        "caption": {
          "$ref": "def#/definitions/text_assets"
        }
      }
    }
  }
});

ajv.compile({ "$ref": "def#/definitions/text_assets" });

It appear that the support of mutual references is limited to the case when at least one of them is the reference to the whole schema file and the case when both are the fragments is not supported.
The workaround is to extract the schema that participates in the mutual reference into a separate file:
ajv.addSchema({
  "id" : "def",
  "definitions": {
    "text_assets": {
      "properties": {
        "asset": {
          "$ref": "asset_image"
        }
      }
    }
  }
});

ajv.addSchema({
  "id" : "asset_image",
  "properties": {
    "caption": {
      "$ref": "def#/definitions/text_assets"
    }
  }
});

ajv.compile({ "$ref": "def#/definitions/text_assets" });

That's a good finding, something to be improved. Thank you.

Thanks a lot for looking into this. This is great.
What is a rough time frame for an update to this bug (week, month, year?)? I just want to know if I should be using the workaround or just wait for the fix.
Thanks.

Can't promise, definitely not year, can be a month though. There is a third option btw - to submit a PR :)

In 4.1.7


[zh] setup files to sync for v1.21

Below are files out-of-sync as of 2021-04-22 in v1.21.
The list can be divided into three groups for work.

Windows support

5	3	content/en/docs/setup/production-environment/windows/user-guide-windows-containers.md
68	89	content/en/docs/setup/production-environment/windows/intro-windows-in-kubernetes.md

Setup

7	7	content/en/docs/setup/production-environment/tools/kops.md
2	2	content/en/docs/setup/production-environment/tools/kubespray.md
1	1	content/en/docs/setup/production-environment/container-runtimes.md
5	0	content/en/docs/setup/release/version-skew-policy.md
5	5	content/en/docs/setup/best-practices/multiple-zones.md
29	0	content/en/docs/setup/learning-environment/_index.md
1	1	content/en/docs/reference/setup-tools/_index.md

Large Cluster Setup

84	89	content/en/docs/setup/best-practices/cluster-large.md

/language zh

/triage accepted
/help

/remove-help


Large file URIs cause "Failed to fetch all URIs for container" error when pulling from HDFS.

Hello,
After upgrading to Marathon 0.11 today, a number of containers that we tried to start would fail.  Looking at the logs, we could see the "Failed to fetch all URIs for container" error.  Checking HDFS, everything looked fine.  We could even manually retrieve the files from HDFS.
After a good amount of debugging, it was discovered that it look like it's only the larger files (100MB and larger) that have issues.  It looks like something times out either during the download or during the extraction of the tar files.  Is there a new setting that we're missing or something else?
We tested this with a web server instead of HDFS with no issues.
FYI, we're still on Mesos 0.23.0.

FYI - Everything works fine after rolling back to marathon 0.10.0

@sybrandy: where do you see the "Failed to fetch all URIs for container" error? In the Mesos Slave log?

@gkleiman Yes, it was in the slave log but also in the Marathon log.

any thoughts?

I'm getting this error on 0.11 too.
Which file is this process actually trying to fetch?

@whamilton42 In our case we have tarball's in HDFS, we're using the "uris" field to fetch them.

@mindscratch  sorry for the delay. The --task_launch_confirm_timeout flag was introduced in v0.11.0 and the default is clearly to low.
We will change the default in the next release, but in the meantime you can workaround this by starting Marathon with a larger timeout. Marathon v0.10.1 used to wait 300000 ms (5 minutes), so that value should be fine for most cases.

@gkleiman that makes sense, I didn't realize the task had a state before "staging", so when I read the description for the --task_launch_confirm_timeout flag I didn't put it together. I'll give this a shot, thanks.

@gkleiman increasing the timeout did the trick.

My problem turned out to be unrelated - a file in the URIs section simply didn't exist.

Hey @sybrandy we fixed that issue. There is an RC version 0.11.1-RC1 which includes the fix. Would be cool, if you could try that version. If everything goes well, we will do the 0.11.1 release tomorrow.

We redeployed marathon 0.11.0 but this time we set the config value to 5
minutes and it's working fine.
On Oct 15, 2015 12:33 AM, "Matthias Veit"<EMAIL_ADDRESS>wrote:

Hey @sybrandy https://github.com/sybrandy we fixed that issue. There is
an RC version 0.11.1-RC1 which includes the fix. Would be cool, if you
could try that version. If everything goes well, we will do the 0.11.1
release tomorrow.
—
Reply to this email directly or view it on GitHub
https://github.com/mesosphere/marathon/issues/2369#issuecomment-148278494
.

Yes, 5 minutes is working out well for us.  Thanks!

Hi @sybrandy ,
Please tell us where should I change the value.
Thanks in Advance...!!!

@mytechskill the marathon configuration setting is named --task_launch_confirm_timeout, see https://mesosphere.github.io/marathon/docs/command-line-flags.html


Enormous latency regression

Hi, I updated a small project to tide-v0.15 from tide-v0.9 and found that the latency surges to about 50+ms(while the old is <1ms) . Then I test/bench the examples/hello.rs:

tried debug and release version, problem remains.
tried on different computers, problem remains.
tried using target: musl, problem remains.
tried different bench tools: wrk, go-wrk, hey, problem remains.
tried different http client: curl, http(python-httpie), problem remains.

After some diagnose, it seems that tide server processes the request performant, but hang-a-little-while in sending the response(That's why clients consumes the response in about 40+ms)
And here is a sample output:
os: linux debian10
rust: 1.49
source: tide/examples/hello.rs
debug version or release version: release version
how to reproduce: always occur in current version (v0.15) at least.
# wrk -d3 --latency  http://<IP_ADDRESS>:8080
Running 3s test @ http://<IP_ADDRESS>:8080
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    43.50ms    5.27ms  48.69ms   98.54%
    Req/Sec   114.55     14.12   151.00     53.33%
  Latency Distribution
     50%   43.98ms
     75%   44.01ms
     90%   44.04ms
     99%   48.02ms
  685 requests in 3.00s, 87.43KB read
Requests/sec:    228.08
Transfer/sec:     29.11KB

# hey -n 1000  -h2 http://<IP_ADDRESS>:8080/

Summary:
  Total:        0.9101 secs
  Slowest:      0.0540 secs
  Fastest:      0.0019 secs
  Average:      0.0424 secs
  Requests/sec: 1098.8335

  Total data:   13000 bytes
  Size/request: 13 bytes

Response time histogram:
  0.002 [1]     |
  0.007 [43]    |■■
  0.012 [16]    |■
  0.018 [0]     |
  0.023 [0]     |
  0.028 [0]     |
  0.033 [0]     |
  0.038 [0]     |
  0.044 [49]    |■■
  0.049 [855]   |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.054 [36]    |■■

Latency distribution:
  10% in 0.0433 secs
  25% in 0.0439 secs
  50% in 0.0440 secs
  75% in 0.0441 secs
  90% in 0.0480 secs
  95% in 0.0483 secs
  99% in 0.0497 secs

Details (average, fastest, slowest):
  DNS+dialup:   0.0001 secs, 0.0019 secs, 0.0540 secs
  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0000 secs
  req write:    0.0001 secs, 0.0000 secs, 0.0033 secs
  resp wait:    0.0009 secs, 0.0002 secs, 0.0051 secs
  resp read:    0.0411 secs, 0.0000 secs, 0.0489 secs

Status code distribution:
  [200] 1000 responses

Hey, thanks for reporting! I wonder if this is perhaps TCP_NODELAY related?
If not, we should probably insert some trace points to figure out exactly where were spending our time.

Hey, thanks for reporting! I wonder if this is perhaps TCP_NODELAY related?
If not, we should probably insert some trace points to figure out exactly where were spending our time.

oh probably something else which would be helpful to find out would be to bisect which version of Tide this regression was introduced in. If we have a better idea when things changed we can probably locate the issue faster

oh probably something else which would be helpful to find out would be to bisect which version of Tide this regression was introduced in. If we have a better idea when things changed we can probably locate the issue faster

Might also be worth checking if this is at the tide layer or async-h1. I'll try out hey and see what happens with async-h1

Might also be worth checking if this is at the tide layer or async-h1. I'll try out hey and see what happens with async-h1

I tried and confirmed that v0.12 has the problem already, but, I failed to compile v0.10 and v0.11.
Doing some research, I found that the most consuming time is at:
(tide:)  listen -> accept -> handler_tcp(spawned task) ->
(async_h1:)  -> accept -> accept_one -> decode(stream-with-timeout) -> reader.read_until(here it consumes most of the time)

So the problem might be:

reader problem(async-std reader implementation)
or read_until internal

I tried and confirmed that v0.12 has the problem already, but, I failed to compile v0.10 and v0.11.
Doing some research, I found that the most consuming time is at:
(tide:)  listen -> accept -> handler_tcp(spawned task) ->
(async_h1:)  -> accept -> accept_one -> decode(stream-with-timeout) -> reader.read_until(here it consumes most of the time)

So the problem might be:

reader problem(async-std reader implementation)
or read_until internal

out of curiosity, why are you enabling http 2 with hey? tide doesn't support h2 currently. i doubt that's the source of the issue, but wanted to check.  also, could you run a longer benchmark, like 100,000 requests instead of 1,000? i want to make sure we have a representative sample

out of curiosity, why are you enabling http 2 with hey? tide doesn't support h2 currently. i doubt that's the source of the issue, but wanted to check.  also, could you run a longer benchmark, like 100,000 requests instead of 1,000? i want to make sure we have a representative sample

another question: does the same pattern happen if you disable the tide::log::start() line? are you directing stdout to a file or displaying it in the terminal? i'm only able to repro higher latency if i output to a tty
here's the output of a production build of the hello example with the log line disabled, on macos. haven't tried spinning up an aws instance yet to compare to linux:
hey -n 100000 http://<IP_ADDRESS>:8080

Summary:
  Total:	2.5128 secs
  Slowest:	0.0238 secs
  Fastest:	0.0001 secs
  Average:	0.0012 secs
  Requests/sec:	39796.8328

  Total data:	1300000 bytes
  Size/request:	13 bytes

Response time histogram:
  0.000 [1]	|
  0.002 [97623]	|■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.005 [2051]	|■
  0.007 [179]	|
  0.010 [41]	|
  0.012 [87]	|
  0.014 [16]	|
  0.017 [1]	|
  0.019 [0]	|
  0.021 [0]	|
  0.024 [1]	|

Latency distribution:
  10% in 0.0008 secs
  25% in 0.0010 secs
  50% in 0.0012 secs
  75% in 0.0013 secs
  90% in 0.0017 secs
  95% in 0.0021 secs
  99% in 0.0031 secs

Details (average, fastest, slowest):
  DNS+dialup:	0.0000 secs, 0.0001 secs, 0.0238 secs
  DNS-lookup:	0.0000 secs, 0.0000 secs, 0.0000 secs
  req write:	0.0000 secs, 0.0000 secs, 0.0025 secs
  resp wait:	0.0008 secs, 0.0001 secs, 0.0232 secs
  resp read:	0.0004 secs, 0.0000 secs, 0.0070 secs

Status code distribution:
  [200]	100000 responses

another question: does the same pattern happen if you disable the tide::log::start() line? are you directing stdout to a file or displaying it in the terminal? i'm only able to repro higher latency if i output to a tty
here's the output of a production build of the hello example with the log line disabled, on macos. haven't tried spinning up an aws instance yet to compare to linux:
hey -n 100000 http://<IP_ADDRESS>:8080

Summary:
  Total:	2.5128 secs
  Slowest:	0.0238 secs
  Fastest:	0.0001 secs
  Average:	0.0012 secs
  Requests/sec:	39796.8328

  Total data:	1300000 bytes
  Size/request:	13 bytes

Response time histogram:
  0.000 [1]	|
  0.002 [97623]	|■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.005 [2051]	|■
  0.007 [179]	|
  0.010 [41]	|
  0.012 [87]	|
  0.014 [16]	|
  0.017 [1]	|
  0.019 [0]	|
  0.021 [0]	|
  0.024 [1]	|

Latency distribution:
  10% in 0.0008 secs
  25% in 0.0010 secs
  50% in 0.0012 secs
  75% in 0.0013 secs
  90% in 0.0017 secs
  95% in 0.0021 secs
  99% in 0.0031 secs

Details (average, fastest, slowest):
  DNS+dialup:	0.0000 secs, 0.0001 secs, 0.0238 secs
  DNS-lookup:	0.0000 secs, 0.0000 secs, 0.0000 secs
  req write:	0.0000 secs, 0.0000 secs, 0.0025 secs
  resp wait:	0.0008 secs, 0.0001 secs, 0.0232 secs
  resp read:	0.0004 secs, 0.0000 secs, 0.0070 secs

Status code distribution:
  [200]	100000 responses

@jbr : Hi, I tested many options including option h2, and I just post the result of that test. Without h2 option, the problem remains. Here's my output: (disabled tide::log::start(), so nothing displays; additionally I redirect them to /dev/null)
debug version
cargo run --package tide --example hello > /dev/null 2>&1

# wrk
wrk -d10 --latency http://<IP_ADDRESS>:8080/
Running 10s test @ http://<IP_ADDRESS>:8080/
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    43.90ms    2.87ms  48.11ms   96.35%
    Req/Sec   113.96     19.47   151.00     78.00%
  Latency Distribution
     50%   43.97ms
     75%   44.00ms
     90%   44.04ms
     99%   48.02ms
  2271 requests in 10.01s, 287.23KB read
Requests/sec:    226.84
Transfer/sec:     28.69KB

# hey
hey -n 10000  http://<IP_ADDRESS>:8080/ # 100000 will be too long

Summary:
  Total:        8.9113 secs
  Slowest:      0.0612 secs
  Fastest:      0.0017 secs
  Average:      0.0443 secs
  Requests/sec: 1122.1704

  Total data:   130000 bytes
  Size/request: 13 bytes

Response time histogram:
  0.002 [1]     |
  0.008 [22]    |
  0.014 [23]    |
  0.020 [6]     |
  0.026 [0]     |
  0.031 [0]     |
  0.037 [0]     |
  0.043 [112]   |
  0.049 [9815]  |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.055 [20]    |
  0.061 [1]     |

Latency distribution:
  10% in 0.0438 secs
  25% in 0.0439 secs
  50% in 0.0440 secs
  75% in 0.0441 secs
  90% in 0.0478 secs
  95% in 0.0480 secs
  99% in 0.0482 secs

Details (average, fastest, slowest):
  DNS+dialup:   0.0000 secs, 0.0017 secs, 0.0612 secs
  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0000 secs
  req write:    0.0001 secs, 0.0000 secs, 0.0090 secs
  resp wait:    0.0016 secs, 0.0007 secs, 0.0040 secs
  resp read:    0.0425 secs, 0.0000 secs, 0.0488 secs

Status code distribution:
  [200] 10000 responses

release version
cargo run --package tide --example hello --release > /dev/null 2>&1

# wrk
wrk -d10 --latency http://<IP_ADDRESS>:8080/
Running 10s test @ http://<IP_ADDRESS>:8080/
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    43.99ms    3.04ms  48.09ms   94.35%
    Req/Sec   113.79     15.18   151.00     79.00%
  Latency Distribution
     50%   43.98ms
     75%   44.00ms
     90%   44.04ms
     99%   48.02ms
  2266 requests in 10.00s, 286.48KB read
Requests/sec:    226.58
Transfer/sec:     28.65KB

# hey
hey -n 10000  http://<IP_ADDRESS>:8080/ # 100000 will be too long

Summary:
  Total:        8.9348 secs
  Slowest:      0.0525 secs
  Fastest:      0.0004 secs
  Average:      0.0443 secs
  Requests/sec: 1119.2197

  Total data:   130000 bytes
  Size/request: 13 bytes

Response time histogram:
  0.000 [1]     |
  0.006 [26]    |
  0.011 [27]    |
  0.016 [0]     |
  0.021 [0]     |
  0.026 [0]     |
  0.032 [0]     |
  0.037 [0]     |
  0.042 [27]    |
  0.047 [8709]  |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.053 [1210]  |■■■■■■

Latency distribution:
  10% in 0.0439 secs
  25% in 0.0439 secs
  50% in 0.0440 secs
  75% in 0.0441 secs
  90% in 0.0479 secs
  95% in 0.0480 secs
  99% in 0.0482 secs

Details (average, fastest, slowest):
  DNS+dialup:   0.0000 secs, 0.0004 secs, 0.0525 secs
  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0000 secs
  req write:    0.0001 secs, 0.0000 secs, 0.0066 secs
  resp wait:    0.0004 secs, 0.0001 secs, 0.0018 secs
  resp read:    0.0438 secs, 0.0000 secs, 0.0500 secs

Status code distribution:
  [200] 10000 responses

@jbr : Hi, I tested many options including option h2, and I just post the result of that test. Without h2 option, the problem remains. Here's my output: (disabled tide::log::start(), so nothing displays; additionally I redirect them to /dev/null)
debug version
cargo run --package tide --example hello > /dev/null 2>&1

# wrk
wrk -d10 --latency http://<IP_ADDRESS>:8080/
Running 10s test @ http://<IP_ADDRESS>:8080/
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    43.90ms    2.87ms  48.11ms   96.35%
    Req/Sec   113.96     19.47   151.00     78.00%
  Latency Distribution
     50%   43.97ms
     75%   44.00ms
     90%   44.04ms
     99%   48.02ms
  2271 requests in 10.01s, 287.23KB read
Requests/sec:    226.84
Transfer/sec:     28.69KB

# hey
hey -n 10000  http://<IP_ADDRESS>:8080/ # 100000 will be too long

Summary:
  Total:        8.9113 secs
  Slowest:      0.0612 secs
  Fastest:      0.0017 secs
  Average:      0.0443 secs
  Requests/sec: 1122.1704

  Total data:   130000 bytes
  Size/request: 13 bytes

Response time histogram:
  0.002 [1]     |
  0.008 [22]    |
  0.014 [23]    |
  0.020 [6]     |
  0.026 [0]     |
  0.031 [0]     |
  0.037 [0]     |
  0.043 [112]   |
  0.049 [9815]  |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.055 [20]    |
  0.061 [1]     |

Latency distribution:
  10% in 0.0438 secs
  25% in 0.0439 secs
  50% in 0.0440 secs
  75% in 0.0441 secs
  90% in 0.0478 secs
  95% in 0.0480 secs
  99% in 0.0482 secs

Details (average, fastest, slowest):
  DNS+dialup:   0.0000 secs, 0.0017 secs, 0.0612 secs
  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0000 secs
  req write:    0.0001 secs, 0.0000 secs, 0.0090 secs
  resp wait:    0.0016 secs, 0.0007 secs, 0.0040 secs
  resp read:    0.0425 secs, 0.0000 secs, 0.0488 secs

Status code distribution:
  [200] 10000 responses

release version
cargo run --package tide --example hello --release > /dev/null 2>&1

# wrk
wrk -d10 --latency http://<IP_ADDRESS>:8080/
Running 10s test @ http://<IP_ADDRESS>:8080/
  2 threads and 10 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    43.99ms    3.04ms  48.09ms   94.35%
    Req/Sec   113.79     15.18   151.00     79.00%
  Latency Distribution
     50%   43.98ms
     75%   44.00ms
     90%   44.04ms
     99%   48.02ms
  2266 requests in 10.00s, 286.48KB read
Requests/sec:    226.58
Transfer/sec:     28.65KB

# hey
hey -n 10000  http://<IP_ADDRESS>:8080/ # 100000 will be too long

Summary:
  Total:        8.9348 secs
  Slowest:      0.0525 secs
  Fastest:      0.0004 secs
  Average:      0.0443 secs
  Requests/sec: 1119.2197

  Total data:   130000 bytes
  Size/request: 13 bytes

Response time histogram:
  0.000 [1]     |
  0.006 [26]    |
  0.011 [27]    |
  0.016 [0]     |
  0.021 [0]     |
  0.026 [0]     |
  0.032 [0]     |
  0.037 [0]     |
  0.042 [27]    |
  0.047 [8709]  |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.053 [1210]  |■■■■■■

Latency distribution:
  10% in 0.0439 secs
  25% in 0.0439 secs
  50% in 0.0440 secs
  75% in 0.0441 secs
  90% in 0.0479 secs
  95% in 0.0480 secs
  99% in 0.0482 secs

Details (average, fastest, slowest):
  DNS+dialup:   0.0000 secs, 0.0004 secs, 0.0525 secs
  DNS-lookup:   0.0000 secs, 0.0000 secs, 0.0000 secs
  req write:    0.0001 secs, 0.0000 secs, 0.0066 secs
  resp wait:    0.0004 secs, 0.0001 secs, 0.0018 secs
  resp read:    0.0438 secs, 0.0000 secs, 0.0500 secs

Status code distribution:
  [200] 10000 responses

could you share your cargo.lock from 0.9? I can't seem to build old versions of tide for comparison

could you share your cargo.lock from 0.9? I can't seem to build old versions of tide for comparison

Hi, I could not compile it from v0.9 now, but I successfully run it by creating a new play_tide project with:
toml:
[dependencies]

# v0.14 + 1.6.5, debug: 200+
# v0.13, failed to compile
# v0.12.0 + 1.6.0, debug: 200+ <--
# v0.11.0, failed to compile
# v0.10.0, failed to compile
# v0.9 + 1.6.0, debug: 10k+ <--
#tide = "0.15.0"
tide = "0.9.0"
#tokio = {version = "0.2", features=["full"]}
async-std = {version = "1.6.0", features = ["attributes"]}

Cargo.lock
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "addr2line"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a49806b9dadc843c61e7c97e72490ad7f7220ae249012fbda9ad0609457c0543"
dependencies = [
 "gimli",
]

[[package]]
name = "anyhow"
version = "1.0.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f"

[[package]]
name = "async-attributes"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efd3d156917d94862e779f356c5acae312b08fd3121e792c857d7928c8088423"
dependencies = [
 "quote",
 "syn",
]

[[package]]
name = "async-h1"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e39d49d12888ee2ff285bb01075f34f56388f2a53170e0e809e4ca07f2dc4f95"
dependencies = [
 "async-std",
 "byte-pool",
 "futures-core",
 "http-types 2.0.1",
 "httparse",
 "lazy_static",
 "log",
 "pin-project-lite",
 "url",
]

[[package]]
name = "async-sse"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6de73294dd1287b32b10f4c884186446353048f183071dff38c1481f82c053b3"
dependencies = [
 "async-std",
 "http-types 1.3.1",
 "log",
 "memchr",
 "pin-project-lite",
]

[[package]]
name = "async-std"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a45cee2749d880d7066e328a7e161c7470ced883b2fd000ca4643e9f1dd5083a"
dependencies = [
 "async-attributes",
 "async-task",
 "crossbeam-utils",
 "futures-channel",
 "futures-core",
 "futures-io",
 "futures-timer",
 "kv-log-macro",
 "log",
 "memchr",
 "num_cpus",
 "once_cell",
 "pin-project-lite",
 "pin-utils",
 "slab",
 "smol",
 "wasm-bindgen-futures",
]

[[package]]
name = "async-task"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c17772156ef2829aadc587461c7753af20b7e8db1529bc66855add962a3b35d3"

[[package]]
name = "autocfg"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"

[[package]]
name = "backtrace"
version = "0.3.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0df2f85c8a2abbe3b7d7e748052fdd9b76a0458fdeb16ad4223f5eca78c7c130"
dependencies = [
 "addr2line",
 "cfg-if",
 "libc",
 "object",
 "rustc-demangle",
]

[[package]]
name = "base-x"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b20b618342cf9891c292c4f5ac2cde7287cc5c87e87e9c769d617793607dec1"

[[package]]
name = "bitflags"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"

[[package]]
name = "bumpalo"
version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5356f1d23ee24a1f785a56d1d1a5f0fd5b0f6a0c0fb2412ce11da71649ab78f6"

[[package]]
name = "byte-pool"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9342e102eac8b1879fbedf9a7e0572c40b0cc5805b663c4d4ca791cae0bae221"
dependencies = [
 "crossbeam-queue",
 "stable_deref_trait",
]

[[package]]
name = "byteorder"
version = "1.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"

[[package]]
name = "cc"
version = "1.0.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311"

[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"

[[package]]
name = "cookie"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5"
dependencies = [
 "time 0.1.43",
]

[[package]]
name = "cookie"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c60ef6d0bbf56ad2674249b6bb74f2c6aeb98b98dd57b5d3e37cace33011d69"
dependencies = [
 "percent-encoding 2.1.0",
 "time 0.2.16",
]

[[package]]
name = "crossbeam"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e"
dependencies = [
 "cfg-if",
 "crossbeam-channel",
 "crossbeam-deque",
 "crossbeam-epoch",
 "crossbeam-queue",
 "crossbeam-utils",
]

[[package]]
name = "crossbeam-channel"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cced8691919c02aac3cb0a1bc2e9b73d89e832bf9a06fc579d4e71b68a2da061"
dependencies = [
 "crossbeam-utils",
 "maybe-uninit",
]

[[package]]
name = "crossbeam-deque"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
dependencies = [
 "crossbeam-epoch",
 "crossbeam-utils",
 "maybe-uninit",
]

[[package]]
name = "crossbeam-epoch"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
dependencies = [
 "autocfg",
 "cfg-if",
 "crossbeam-utils",
 "lazy_static",
 "maybe-uninit",
 "memoffset",
 "scopeguard",
]

[[package]]
name = "crossbeam-queue"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db"
dependencies = [
 "cfg-if",
 "crossbeam-utils",
]

[[package]]
name = "crossbeam-utils"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
dependencies = [
 "autocfg",
 "cfg-if",
 "lazy_static",
]

[[package]]
name = "data-encoding"
version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69"

[[package]]
name = "discard"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"

[[package]]
name = "dtoa"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3"

[[package]]
name = "error-chain"
version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd"
dependencies = [
 "backtrace",
 "version_check",
]

[[package]]
name = "femme"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b6b21baebbed15551f2170010ca4101b9ed3fdc05822791c8bd4631840eab81"
dependencies = [
 "cfg-if",
 "js-sys",
 "log",
 "serde",
 "serde_derive",
 "wasm-bindgen",
 "web-sys",
]

[[package]]
name = "futures-channel"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
dependencies = [
 "futures-core",
]

[[package]]
name = "futures-core"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"

[[package]]
name = "futures-io"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"

[[package]]
name = "futures-sink"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"

[[package]]
name = "futures-task"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
dependencies = [
 "once_cell",
]

[[package]]
name = "futures-timer"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
dependencies = [
 "gloo-timers",
 "send_wrapper",
]

[[package]]
name = "futures-util"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
dependencies = [
 "futures-core",
 "futures-io",
 "futures-task",
 "memchr",
 "pin-project",
 "pin-utils",
 "slab",
]

[[package]]
name = "gimli"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"

[[package]]
name = "gloo-timers"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f"
dependencies = [
 "futures-channel",
 "futures-core",
 "js-sys",
 "wasm-bindgen",
 "web-sys",
]

[[package]]
name = "hermit-abi"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91780f809e750b0a89f5544be56617ff6b1227ee485bcb06ebe10cdf89bd3b71"
dependencies = [
 "libc",
]

[[package]]
name = "http-types"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49d9f44462c2e59d5d5826e7ba74b121ee2fb0ff091ef849692694f1d77aaf50"
dependencies = [
 "anyhow",
 "async-std",
 "cookie 0.12.0",
 "infer",
 "omnom",
 "pin-project-lite",
 "serde",
 "serde_json",
 "url",
]

[[package]]
name = "http-types"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad13fdb1177d3cd39711c55014e4f315b37908b66c17f89321e228279821d96e"
dependencies = [
 "anyhow",
 "async-std",
 "cookie 0.13.3",
 "infer",
 "pin-project-lite",
 "serde",
 "serde_json",
 "serde_urlencoded",
 "url",
]

[[package]]
name = "httparse"
version = "1.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"

[[package]]
name = "idna"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
dependencies = [
 "matches",
 "unicode-bidi",
 "unicode-normalization",
]

[[package]]
name = "infer"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d55c406a76164eb346a829ed4b97b73cb06259078eca01adeb12e8ca308d4123"
dependencies = [
 "byteorder",
]

[[package]]
name = "itoa"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"

[[package]]
name = "js-sys"
version = "0.3.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa5a448de267e7358beaf4a5d849518fe9a0c13fce7afd44b06e68550e5562a7"
dependencies = [
 "wasm-bindgen",
]

[[package]]
name = "kv-log-macro"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ff57d6d215f7ca7eb35a9a64d656ba4d9d2bef114d741dc08048e75e2f5d418"
dependencies = [
 "log",
]

[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"

[[package]]
name = "libc"
version = "0.2.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"

[[package]]
name = "log"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
dependencies = [
 "cfg-if",
]

[[package]]
name = "matches"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"

[[package]]
name = "maybe-uninit"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"

[[package]]
name = "memchr"
version = "2.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"

[[package]]
name = "memoffset"
version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8"
dependencies = [
 "autocfg",
]

[[package]]
name = "mime"
version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"

[[package]]
name = "mime_guess"
version = "2.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
dependencies = [
 "mime",
 "unicase",
]

[[package]]
name = "nix"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
dependencies = [
 "bitflags",
 "cc",
 "cfg-if",
 "libc",
 "void",
]

[[package]]
name = "num_cpus"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
dependencies = [
 "hermit-abi",
 "libc",
]

[[package]]
name = "object"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2"

[[package]]
name = "omnom"
version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6b216cee2e0d6e680f73158d15468c80b39e571c11669cd90556f9a644e9fd3"
dependencies = [
 "memchr",
]

[[package]]
name = "once_cell"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"

[[package]]
name = "percent-encoding"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"

[[package]]
name = "percent-encoding"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"

[[package]]
name = "pin-project"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791"
dependencies = [
 "pin-project-internal",
]

[[package]]
name = "pin-project-internal"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e58db2081ba5b4c93bd6be09c40fd36cb9193a8336c384f3b40012e531aa7e40"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "pin-project-lite"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f"

[[package]]
name = "pin-utils"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"

[[package]]
name = "piper"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b0deb65f46e873ba8aa7c6a8dbe3f23cb1bf59c339a81a1d56361dde4d66ac8"
dependencies = [
 "crossbeam-utils",
 "futures-io",
 "futures-sink",
 "futures-util",
]

[[package]]
name = "play_tide"
version = "0.1.0"
dependencies = [
 "async-std",
 "tide",
]

[[package]]
name = "proc-macro-hack"
version = "0.5.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"

[[package]]
name = "proc-macro2"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1502d12e458c49a4c9cbff560d0fe0060c252bc29799ed94ca2ed4bb665a0101"
dependencies = [
 "unicode-xid",
]

[[package]]
name = "quote"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea"
dependencies = [
 "proc-macro2",
]

[[package]]
name = "redox_syscall"
version = "0.1.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"

[[package]]
name = "route-recognizer"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea509065eb0b3c446acdd0102f0d46567dc30902dc0be91d6552035d92b0f4f8"

[[package]]
name = "rustc-demangle"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"

[[package]]
name = "rustc_version"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [
 "semver",
]

[[package]]
name = "ryu"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1"

[[package]]
name = "scoped-tls-hkt"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2e9d7eaddb227e8fbaaa71136ae0e1e913ca159b86c7da82f3e8f0044ad3a63"

[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"

[[package]]
name = "semver"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [
 "semver-parser",
]

[[package]]
name = "semver-parser"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"

[[package]]
name = "send_wrapper"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0"

[[package]]
name = "serde"
version = "1.0.110"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99e7b308464d16b56eba9964e4972a3eee817760ab60d88c3f86e1fecb08204c"
dependencies = [
 "serde_derive",
]

[[package]]
name = "serde_derive"
version = "1.0.110"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "818fbf6bfa9a42d3bfcaca148547aa00c7b915bec71d1757aa2d44ca68771984"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "serde_json"
version = "1.0.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "993948e75b189211a9b31a7528f950c6adc21f9720b6438ff80a7fa2f864cea2"
dependencies = [
 "itoa",
 "ryu",
 "serde",
]

[[package]]
name = "serde_qs"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d43eef44996bbe16e99ac720e1577eefa16f7b76b5172165c98ced20ae9903e1"
dependencies = [
 "data-encoding",
 "error-chain",
 "percent-encoding 1.0.1",
 "serde",
]

[[package]]
name = "serde_urlencoded"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
dependencies = [
 "dtoa",
 "itoa",
 "serde",
 "url",
]

[[package]]
name = "sha1"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"

[[package]]
name = "slab"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"

[[package]]
name = "smallvec"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"

[[package]]
name = "smol"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "686c634ad1873fffef6aed20f180eede424fbf3bb31802394c90fd7335a661b7"
dependencies = [
 "async-task",
 "crossbeam",
 "futures-io",
 "futures-util",
 "nix",
 "once_cell",
 "piper",
 "scoped-tls-hkt",
 "slab",
 "socket2",
 "wepoll-binding",
]

[[package]]
name = "socket2"
version = "0.3.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
dependencies = [
 "cfg-if",
 "libc",
 "redox_syscall",
 "winapi",
]

[[package]]
name = "stable_deref_trait"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"

[[package]]
name = "standback"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47e4b8c631c998468961a9ea159f064c5c8499b95b5e4a34b77849d45949d540"

[[package]]
name = "stdweb"
version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
dependencies = [
 "discard",
 "rustc_version",
 "stdweb-derive",
 "stdweb-internal-macros",
 "stdweb-internal-runtime",
 "wasm-bindgen",
]

[[package]]
name = "stdweb-derive"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
dependencies = [
 "proc-macro2",
 "quote",
 "serde",
 "serde_derive",
 "syn",
]

[[package]]
name = "stdweb-internal-macros"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
dependencies = [
 "base-x",
 "proc-macro2",
 "quote",
 "serde",
 "serde_derive",
 "serde_json",
 "sha1",
 "syn",
]

[[package]]
name = "stdweb-internal-runtime"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"

[[package]]
name = "syn"
version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef781e621ee763a2a40721a8861ec519cb76966aee03bb5d00adb6a31dc1c1de"
dependencies = [
 "proc-macro2",
 "quote",
 "unicode-xid",
]

[[package]]
name = "tide"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9620c27936f084db0613d82507e3c6e8be64cb1a26e0c721a2796b5a8c7a515"
dependencies = [
 "async-h1",
 "async-sse",
 "async-std",
 "femme",
 "http-types 2.0.1",
 "kv-log-macro",
 "mime",
 "mime_guess",
 "route-recognizer",
 "serde",
 "serde_json",
 "serde_qs",
]

[[package]]
name = "time"
version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
dependencies = [
 "libc",
 "winapi",
]

[[package]]
name = "time"
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a51cadc5b1eec673a685ff7c33192ff7b7603d0b75446fb354939ee615acb15"
dependencies = [
 "cfg-if",
 "libc",
 "standback",
 "stdweb",
 "time-macros",
 "version_check",
 "winapi",
]

[[package]]
name = "time-macros"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ae9b6e9f095bc105e183e3cd493d72579be3181ad4004fceb01adbe9eecab2d"
dependencies = [
 "proc-macro-hack",
 "time-macros-impl",
]

[[package]]
name = "time-macros-impl"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa"
dependencies = [
 "proc-macro-hack",
 "proc-macro2",
 "quote",
 "standback",
 "syn",
]

[[package]]
name = "unicase"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
dependencies = [
 "version_check",
]

[[package]]
name = "unicode-bidi"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
dependencies = [
 "matches",
]

[[package]]
name = "unicode-normalization"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
dependencies = [
 "smallvec",
]

[[package]]
name = "unicode-xid"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"

[[package]]
name = "url"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
dependencies = [
 "idna",
 "matches",
 "percent-encoding 2.1.0",
]

[[package]]
name = "version_check"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"

[[package]]
name = "void"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"

[[package]]
name = "wasm-bindgen"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3c7d40d09cdbf0f4895ae58cf57d92e1e57a9dd8ed2e8390514b54a47cc5551"
dependencies = [
 "cfg-if",
 "serde",
 "serde_json",
 "wasm-bindgen-macro",
]

[[package]]
name = "wasm-bindgen-backend"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3972e137ebf830900db522d6c8fd74d1900dcfc733462e9a12e942b00b4ac94"
dependencies = [
 "bumpalo",
 "lazy_static",
 "log",
 "proc-macro2",
 "quote",
 "syn",
 "wasm-bindgen-shared",
]

[[package]]
name = "wasm-bindgen-futures"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a369c5e1dfb7569e14d62af4da642a3cbc2f9a3652fe586e26ac22222aa4b04"
dependencies = [
 "cfg-if",
 "js-sys",
 "wasm-bindgen",
 "web-sys",
]

[[package]]
name = "wasm-bindgen-macro"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cd85aa2c579e8892442954685f0d801f9129de24fa2136b2c6a539c76b65776"
dependencies = [
 "quote",
 "wasm-bindgen-macro-support",
]

[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8eb197bd3a47553334907ffd2f16507b4f4f01bbec3ac921a7719e0decdfe72a"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
 "wasm-bindgen-backend",
 "wasm-bindgen-shared",
]

[[package]]
name = "wasm-bindgen-shared"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a91c2916119c17a8e316507afaaa2dd94b47646048014bbdf6bef098c1bb58ad"

[[package]]
name = "web-sys"
version = "0.3.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bc359e5dd3b46cb9687a051d50a2fdd228e4ba7cf6fcf861a5365c3d671a642"
dependencies = [
 "js-sys",
 "wasm-bindgen",
]

[[package]]
name = "wepoll-binding"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "374fff4ff9701ff8b6ad0d14bacd3156c44063632d8c136186ff5967d48999a7"
dependencies = [
 "bitflags",
 "wepoll-sys",
]

[[package]]
name = "wepoll-sys"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9082a777aed991f6769e2b654aa0cb29f1c3d615daf009829b07b66c7aff6a24"
dependencies = [
 "cc",
]

[[package]]
name = "winapi"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
dependencies = [
 "winapi-i686-pc-windows-gnu",
 "winapi-x86_64-pc-windows-gnu",
]

[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"

[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

Hi, I could not compile it from v0.9 now, but I successfully run it by creating a new play_tide project with:
toml:
[dependencies]

# v0.14 + 1.6.5, debug: 200+
# v0.13, failed to compile
# v0.12.0 + 1.6.0, debug: 200+ <--
# v0.11.0, failed to compile
# v0.10.0, failed to compile
# v0.9 + 1.6.0, debug: 10k+ <--
#tide = "0.15.0"
tide = "0.9.0"
#tokio = {version = "0.2", features=["full"]}
async-std = {version = "1.6.0", features = ["attributes"]}

Cargo.lock
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "addr2line"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a49806b9dadc843c61e7c97e72490ad7f7220ae249012fbda9ad0609457c0543"
dependencies = [
 "gimli",
]

[[package]]
name = "anyhow"
version = "1.0.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f"

[[package]]
name = "async-attributes"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efd3d156917d94862e779f356c5acae312b08fd3121e792c857d7928c8088423"
dependencies = [
 "quote",
 "syn",
]

[[package]]
name = "async-h1"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e39d49d12888ee2ff285bb01075f34f56388f2a53170e0e809e4ca07f2dc4f95"
dependencies = [
 "async-std",
 "byte-pool",
 "futures-core",
 "http-types 2.0.1",
 "httparse",
 "lazy_static",
 "log",
 "pin-project-lite",
 "url",
]

[[package]]
name = "async-sse"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6de73294dd1287b32b10f4c884186446353048f183071dff38c1481f82c053b3"
dependencies = [
 "async-std",
 "http-types 1.3.1",
 "log",
 "memchr",
 "pin-project-lite",
]

[[package]]
name = "async-std"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a45cee2749d880d7066e328a7e161c7470ced883b2fd000ca4643e9f1dd5083a"
dependencies = [
 "async-attributes",
 "async-task",
 "crossbeam-utils",
 "futures-channel",
 "futures-core",
 "futures-io",
 "futures-timer",
 "kv-log-macro",
 "log",
 "memchr",
 "num_cpus",
 "once_cell",
 "pin-project-lite",
 "pin-utils",
 "slab",
 "smol",
 "wasm-bindgen-futures",
]

[[package]]
name = "async-task"
version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c17772156ef2829aadc587461c7753af20b7e8db1529bc66855add962a3b35d3"

[[package]]
name = "autocfg"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"

[[package]]
name = "backtrace"
version = "0.3.48"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0df2f85c8a2abbe3b7d7e748052fdd9b76a0458fdeb16ad4223f5eca78c7c130"
dependencies = [
 "addr2line",
 "cfg-if",
 "libc",
 "object",
 "rustc-demangle",
]

[[package]]
name = "base-x"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b20b618342cf9891c292c4f5ac2cde7287cc5c87e87e9c769d617793607dec1"

[[package]]
name = "bitflags"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"

[[package]]
name = "bumpalo"
version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5356f1d23ee24a1f785a56d1d1a5f0fd5b0f6a0c0fb2412ce11da71649ab78f6"

[[package]]
name = "byte-pool"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9342e102eac8b1879fbedf9a7e0572c40b0cc5805b663c4d4ca791cae0bae221"
dependencies = [
 "crossbeam-queue",
 "stable_deref_trait",
]

[[package]]
name = "byteorder"
version = "1.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"

[[package]]
name = "cc"
version = "1.0.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311"

[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"

[[package]]
name = "cookie"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5"
dependencies = [
 "time 0.1.43",
]

[[package]]
name = "cookie"
version = "0.13.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c60ef6d0bbf56ad2674249b6bb74f2c6aeb98b98dd57b5d3e37cace33011d69"
dependencies = [
 "percent-encoding 2.1.0",
 "time 0.2.16",
]

[[package]]
name = "crossbeam"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e"
dependencies = [
 "cfg-if",
 "crossbeam-channel",
 "crossbeam-deque",
 "crossbeam-epoch",
 "crossbeam-queue",
 "crossbeam-utils",
]

[[package]]
name = "crossbeam-channel"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cced8691919c02aac3cb0a1bc2e9b73d89e832bf9a06fc579d4e71b68a2da061"
dependencies = [
 "crossbeam-utils",
 "maybe-uninit",
]

[[package]]
name = "crossbeam-deque"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
dependencies = [
 "crossbeam-epoch",
 "crossbeam-utils",
 "maybe-uninit",
]

[[package]]
name = "crossbeam-epoch"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
dependencies = [
 "autocfg",
 "cfg-if",
 "crossbeam-utils",
 "lazy_static",
 "maybe-uninit",
 "memoffset",
 "scopeguard",
]

[[package]]
name = "crossbeam-queue"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db"
dependencies = [
 "cfg-if",
 "crossbeam-utils",
]

[[package]]
name = "crossbeam-utils"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
dependencies = [
 "autocfg",
 "cfg-if",
 "lazy_static",
]

[[package]]
name = "data-encoding"
version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72aa14c04dfae8dd7d8a2b1cb7ca2152618cd01336dbfe704b8dcbf8d41dbd69"

[[package]]
name = "discard"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"

[[package]]
name = "dtoa"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3"

[[package]]
name = "error-chain"
version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd"
dependencies = [
 "backtrace",
 "version_check",
]

[[package]]
name = "femme"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b6b21baebbed15551f2170010ca4101b9ed3fdc05822791c8bd4631840eab81"
dependencies = [
 "cfg-if",
 "js-sys",
 "log",
 "serde",
 "serde_derive",
 "wasm-bindgen",
 "web-sys",
]

[[package]]
name = "futures-channel"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
dependencies = [
 "futures-core",
]

[[package]]
name = "futures-core"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"

[[package]]
name = "futures-io"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"

[[package]]
name = "futures-sink"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"

[[package]]
name = "futures-task"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
dependencies = [
 "once_cell",
]

[[package]]
name = "futures-timer"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
dependencies = [
 "gloo-timers",
 "send_wrapper",
]

[[package]]
name = "futures-util"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
dependencies = [
 "futures-core",
 "futures-io",
 "futures-task",
 "memchr",
 "pin-project",
 "pin-utils",
 "slab",
]

[[package]]
name = "gimli"
version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"

[[package]]
name = "gloo-timers"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f"
dependencies = [
 "futures-channel",
 "futures-core",
 "js-sys",
 "wasm-bindgen",
 "web-sys",
]

[[package]]
name = "hermit-abi"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "91780f809e750b0a89f5544be56617ff6b1227ee485bcb06ebe10cdf89bd3b71"
dependencies = [
 "libc",
]

[[package]]
name = "http-types"
version = "1.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49d9f44462c2e59d5d5826e7ba74b121ee2fb0ff091ef849692694f1d77aaf50"
dependencies = [
 "anyhow",
 "async-std",
 "cookie 0.12.0",
 "infer",
 "omnom",
 "pin-project-lite",
 "serde",
 "serde_json",
 "url",
]

[[package]]
name = "http-types"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad13fdb1177d3cd39711c55014e4f315b37908b66c17f89321e228279821d96e"
dependencies = [
 "anyhow",
 "async-std",
 "cookie 0.13.3",
 "infer",
 "pin-project-lite",
 "serde",
 "serde_json",
 "serde_urlencoded",
 "url",
]

[[package]]
name = "httparse"
version = "1.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"

[[package]]
name = "idna"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
dependencies = [
 "matches",
 "unicode-bidi",
 "unicode-normalization",
]

[[package]]
name = "infer"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d55c406a76164eb346a829ed4b97b73cb06259078eca01adeb12e8ca308d4123"
dependencies = [
 "byteorder",
]

[[package]]
name = "itoa"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"

[[package]]
name = "js-sys"
version = "0.3.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa5a448de267e7358beaf4a5d849518fe9a0c13fce7afd44b06e68550e5562a7"
dependencies = [
 "wasm-bindgen",
]

[[package]]
name = "kv-log-macro"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ff57d6d215f7ca7eb35a9a64d656ba4d9d2bef114d741dc08048e75e2f5d418"
dependencies = [
 "log",
]

[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"

[[package]]
name = "libc"
version = "0.2.71"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"

[[package]]
name = "log"
version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
dependencies = [
 "cfg-if",
]

[[package]]
name = "matches"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"

[[package]]
name = "maybe-uninit"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"

[[package]]
name = "memchr"
version = "2.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"

[[package]]
name = "memoffset"
version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8"
dependencies = [
 "autocfg",
]

[[package]]
name = "mime"
version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"

[[package]]
name = "mime_guess"
version = "2.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
dependencies = [
 "mime",
 "unicase",
]

[[package]]
name = "nix"
version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
dependencies = [
 "bitflags",
 "cc",
 "cfg-if",
 "libc",
 "void",
]

[[package]]
name = "num_cpus"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
dependencies = [
 "hermit-abi",
 "libc",
]

[[package]]
name = "object"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2"

[[package]]
name = "omnom"
version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6b216cee2e0d6e680f73158d15468c80b39e571c11669cd90556f9a644e9fd3"
dependencies = [
 "memchr",
]

[[package]]
name = "once_cell"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"

[[package]]
name = "percent-encoding"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"

[[package]]
name = "percent-encoding"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"

[[package]]
name = "pin-project"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791"
dependencies = [
 "pin-project-internal",
]

[[package]]
name = "pin-project-internal"
version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e58db2081ba5b4c93bd6be09c40fd36cb9193a8336c384f3b40012e531aa7e40"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "pin-project-lite"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7505eeebd78492e0f6108f7171c4948dbb120ee8119d9d77d0afa5469bef67f"

[[package]]
name = "pin-utils"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"

[[package]]
name = "piper"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b0deb65f46e873ba8aa7c6a8dbe3f23cb1bf59c339a81a1d56361dde4d66ac8"
dependencies = [
 "crossbeam-utils",
 "futures-io",
 "futures-sink",
 "futures-util",
]

[[package]]
name = "play_tide"
version = "0.1.0"
dependencies = [
 "async-std",
 "tide",
]

[[package]]
name = "proc-macro-hack"
version = "0.5.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"

[[package]]
name = "proc-macro2"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1502d12e458c49a4c9cbff560d0fe0060c252bc29799ed94ca2ed4bb665a0101"
dependencies = [
 "unicode-xid",
]

[[package]]
name = "quote"
version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea"
dependencies = [
 "proc-macro2",
]

[[package]]
name = "redox_syscall"
version = "0.1.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"

[[package]]
name = "route-recognizer"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea509065eb0b3c446acdd0102f0d46567dc30902dc0be91d6552035d92b0f4f8"

[[package]]
name = "rustc-demangle"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"

[[package]]
name = "rustc_version"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [
 "semver",
]

[[package]]
name = "ryu"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1"

[[package]]
name = "scoped-tls-hkt"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2e9d7eaddb227e8fbaaa71136ae0e1e913ca159b86c7da82f3e8f0044ad3a63"

[[package]]
name = "scopeguard"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"

[[package]]
name = "semver"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [
 "semver-parser",
]

[[package]]
name = "semver-parser"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"

[[package]]
name = "send_wrapper"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0"

[[package]]
name = "serde"
version = "1.0.110"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99e7b308464d16b56eba9964e4972a3eee817760ab60d88c3f86e1fecb08204c"
dependencies = [
 "serde_derive",
]

[[package]]
name = "serde_derive"
version = "1.0.110"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "818fbf6bfa9a42d3bfcaca148547aa00c7b915bec71d1757aa2d44ca68771984"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
]

[[package]]
name = "serde_json"
version = "1.0.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "993948e75b189211a9b31a7528f950c6adc21f9720b6438ff80a7fa2f864cea2"
dependencies = [
 "itoa",
 "ryu",
 "serde",
]

[[package]]
name = "serde_qs"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d43eef44996bbe16e99ac720e1577eefa16f7b76b5172165c98ced20ae9903e1"
dependencies = [
 "data-encoding",
 "error-chain",
 "percent-encoding 1.0.1",
 "serde",
]

[[package]]
name = "serde_urlencoded"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
dependencies = [
 "dtoa",
 "itoa",
 "serde",
 "url",
]

[[package]]
name = "sha1"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"

[[package]]
name = "slab"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"

[[package]]
name = "smallvec"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"

[[package]]
name = "smol"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "686c634ad1873fffef6aed20f180eede424fbf3bb31802394c90fd7335a661b7"
dependencies = [
 "async-task",
 "crossbeam",
 "futures-io",
 "futures-util",
 "nix",
 "once_cell",
 "piper",
 "scoped-tls-hkt",
 "slab",
 "socket2",
 "wepoll-binding",
]

[[package]]
name = "socket2"
version = "0.3.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
dependencies = [
 "cfg-if",
 "libc",
 "redox_syscall",
 "winapi",
]

[[package]]
name = "stable_deref_trait"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"

[[package]]
name = "standback"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "47e4b8c631c998468961a9ea159f064c5c8499b95b5e4a34b77849d45949d540"

[[package]]
name = "stdweb"
version = "0.4.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
dependencies = [
 "discard",
 "rustc_version",
 "stdweb-derive",
 "stdweb-internal-macros",
 "stdweb-internal-runtime",
 "wasm-bindgen",
]

[[package]]
name = "stdweb-derive"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
dependencies = [
 "proc-macro2",
 "quote",
 "serde",
 "serde_derive",
 "syn",
]

[[package]]
name = "stdweb-internal-macros"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
dependencies = [
 "base-x",
 "proc-macro2",
 "quote",
 "serde",
 "serde_derive",
 "serde_json",
 "sha1",
 "syn",
]

[[package]]
name = "stdweb-internal-runtime"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"

[[package]]
name = "syn"
version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef781e621ee763a2a40721a8861ec519cb76966aee03bb5d00adb6a31dc1c1de"
dependencies = [
 "proc-macro2",
 "quote",
 "unicode-xid",
]

[[package]]
name = "tide"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9620c27936f084db0613d82507e3c6e8be64cb1a26e0c721a2796b5a8c7a515"
dependencies = [
 "async-h1",
 "async-sse",
 "async-std",
 "femme",
 "http-types 2.0.1",
 "kv-log-macro",
 "mime",
 "mime_guess",
 "route-recognizer",
 "serde",
 "serde_json",
 "serde_qs",
]

[[package]]
name = "time"
version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
dependencies = [
 "libc",
 "winapi",
]

[[package]]
name = "time"
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a51cadc5b1eec673a685ff7c33192ff7b7603d0b75446fb354939ee615acb15"
dependencies = [
 "cfg-if",
 "libc",
 "standback",
 "stdweb",
 "time-macros",
 "version_check",
 "winapi",
]

[[package]]
name = "time-macros"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ae9b6e9f095bc105e183e3cd493d72579be3181ad4004fceb01adbe9eecab2d"
dependencies = [
 "proc-macro-hack",
 "time-macros-impl",
]

[[package]]
name = "time-macros-impl"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa"
dependencies = [
 "proc-macro-hack",
 "proc-macro2",
 "quote",
 "standback",
 "syn",
]

[[package]]
name = "unicase"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
dependencies = [
 "version_check",
]

[[package]]
name = "unicode-bidi"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
dependencies = [
 "matches",
]

[[package]]
name = "unicode-normalization"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
dependencies = [
 "smallvec",
]

[[package]]
name = "unicode-xid"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"

[[package]]
name = "url"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
dependencies = [
 "idna",
 "matches",
 "percent-encoding 2.1.0",
]

[[package]]
name = "version_check"
version = "0.9.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"

[[package]]
name = "void"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"

[[package]]
name = "wasm-bindgen"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3c7d40d09cdbf0f4895ae58cf57d92e1e57a9dd8ed2e8390514b54a47cc5551"
dependencies = [
 "cfg-if",
 "serde",
 "serde_json",
 "wasm-bindgen-macro",
]

[[package]]
name = "wasm-bindgen-backend"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3972e137ebf830900db522d6c8fd74d1900dcfc733462e9a12e942b00b4ac94"
dependencies = [
 "bumpalo",
 "lazy_static",
 "log",
 "proc-macro2",
 "quote",
 "syn",
 "wasm-bindgen-shared",
]

[[package]]
name = "wasm-bindgen-futures"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a369c5e1dfb7569e14d62af4da642a3cbc2f9a3652fe586e26ac22222aa4b04"
dependencies = [
 "cfg-if",
 "js-sys",
 "wasm-bindgen",
 "web-sys",
]

[[package]]
name = "wasm-bindgen-macro"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cd85aa2c579e8892442954685f0d801f9129de24fa2136b2c6a539c76b65776"
dependencies = [
 "quote",
 "wasm-bindgen-macro-support",
]

[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8eb197bd3a47553334907ffd2f16507b4f4f01bbec3ac921a7719e0decdfe72a"
dependencies = [
 "proc-macro2",
 "quote",
 "syn",
 "wasm-bindgen-backend",
 "wasm-bindgen-shared",
]

[[package]]
name = "wasm-bindgen-shared"
version = "0.2.62"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a91c2916119c17a8e316507afaaa2dd94b47646048014bbdf6bef098c1bb58ad"

[[package]]
name = "web-sys"
version = "0.3.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8bc359e5dd3b46cb9687a051d50a2fdd228e4ba7cf6fcf861a5365c3d671a642"
dependencies = [
 "js-sys",
 "wasm-bindgen",
]

[[package]]
name = "wepoll-binding"
version = "2.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "374fff4ff9701ff8b6ad0d14bacd3156c44063632d8c136186ff5967d48999a7"
dependencies = [
 "bitflags",
 "wepoll-sys",
]

[[package]]
name = "wepoll-sys"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9082a777aed991f6769e2b654aa0cb29f1c3d615daf009829b07b66c7aff6a24"
dependencies = [
 "cc",
]

[[package]]
name = "winapi"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
dependencies = [
 "winapi-i686-pc-windows-gnu",
 "winapi-x86_64-pc-windows-gnu",
]

[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"

[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

I wrote a python script abount this issue.
import requests
from tqdm.auto import tqdm

def hello():
    r = requests.get('http://<IP_ADDRESS>:8080')
    return r.status_code

s = requests.Session()

def hello_session():
    r = s.get('http://<IP_ADDRESS>:8080')
    return r.status_code

print(hello())
print(hello_session())

for x in tqdm(range(2000), desc='hello'):
    hello()

for x in tqdm(range(2000), desc='hello session'):
    hello_session()

the output
first loop: 663.39it/s
second loop: 24.07it/s

Hey, thanks for reporting! I wonder if this is perhaps TCP_NODELAY related?
If not, we should probably insert some trace points to figure out exactly where were spending our time.

yes, it is
when enable nodelay option, it fixed.
https://github.com/http-rs/tide/commit/f9be364f2d84bf2157580e0b68c9bbaaf65f388e


Add check for TraceEnum_ELBO requirements

This adds a conservative warning to TraceEnum_ELBO in cases where the model or guide might contain dependencies on enumerated variables. The warning is only triggered in cases where the model or guide could easily be rewritten to be obviously correct.

Any additional comments, or is this ready to merge?

yup, just waiting on a commitment from you to explain to any confused users why their model generated this warning : )

yes, i hereby commit to responding to users about why warnings were generated.