tree: e618b6f0ac3cc2869b904830257a559c94497a4e [path history] [tgz]
  1. addr2line/
  2. adler/
  3. aho_corasick/
  4. ansi_term/
  5. aquamarine/
  6. atty/
  7. autocfg/
  8. autocxx/
  9. autocxx_bindgen/
  10. autocxx_engine/
  11. autocxx_gen/
  12. autocxx_macro/
  13. autocxx_parser/
  14. backtrace/
  15. bindgen/
  16. bitflags/
  17. cc/
  18. cexpr/
  19. cfg_if/
  20. clang_sys/
  21. clap/
  22. clap_lex/
  23. codespan_reporting/
  24. cxx/
  25. cxx_gen/
  26. cxxbridge_cmd/
  27. cxxbridge_macro/
  28. either/
  29. env_logger/
  30. fastrand/
  31. gimli/
  32. glob/
  33. hashbrown/
  34. heck/
  35. humantime/
  36. indexmap/
  37. indoc/
  38. is_ci/
  39. itertools/
  40. itoa/
  41. lazy_static/
  42. lazycell/
  43. libc/
  44. libloading/
  45. link_cplusplus/
  46. log/
  47. memchr/
  48. miette/
  49. miette_derive/
  50. minimal_lexical/
  51. miniz_oxide/
  52. moveit/
  53. nom/
  54. object/
  55. once_cell/
  56. os_str_bytes/
  57. owo_colors/
  58. pathdiff/
  59. peeking_take_while/
  60. proc_macro2/
  61. proc_macro_error/
  62. proc_macro_error_attr/
  63. quote/
  64. regex/
  65. regex_syntax/
  66. remove_dir_all/
  67. rstest/
  68. rustc_demangle/
  69. rustc_hash/
  70. rustc_version/
  71. rustversion/
  72. ryu/
  73. semver/
  74. serde/
  75. serde_derive/
  76. serde_json/
  77. serde_json_lenient/
  78. shlex/
  79. small_ctor/
  80. smawk/
  81. strsim/
  82. strum_macros/
  83. supports_color/
  84. supports_hyperlinks/
  85. supports_unicode/
  86. syn/
  87. tempfile/
  88. termcolor/
  89. terminal_size/
  90. textwrap/
  91. thiserror/
  92. thiserror_impl/
  93. unicode_linebreak/
  94. unicode_segmentation/
  95. unicode_width/
  96. unicode_xid/
  97. unindent/
  98. unzip_n/
  99. vec_map/
  100. version_check/
  101. which/
  102. winapi/
  103. winapi_util/
  104. .clang-format
  105. .gitignore
  106. OWNERS
  107. README.md
  108. third_party.toml
third_party/rust/README.md

Rust third-party code

Use of Rust is being experimented with. As such, code outside of that experiment should not depend on targets in this directory.

Directory structure

We store each third-party crate in a directory of the same name. Under that directory a folder named based on the crate epoch version is created. If the crate's version has a major version greater-than 0, then that is used as its version folder, such as v1. Otherwise, the name includes all leading zeros in the version, such as v0_3 or v0_0_6.

For example, the tutelage crate at version 1.4.3 would be stored at

//third_party/rust/tutelage/v1

Whereas the verion 0.2.8 version would be stored at

//third_party/rust/tutelage/v0_2

OWNERS

We do not require OWNERS in each crate's directory at this time, however this will be revisted when Rust goes to production.

Vendoring vs DEPS

In order to move quickly and reduce our processes, we will vendor third-party code directly into Chromium src.git under this directory.

Testing

All third-party crates should have their tests added to a Chromium test suite. These tests will be run on the Rust FYI bots, and may move to a blocking bot when Rust goes to production.