{"id":13400932,"url":"https://github.com/rust-lang/this-week-in-rust","last_synced_at":"2025-12-18T01:41:27.163Z","repository":{"id":22893779,"uuid":"26242135","full_name":"rust-lang/this-week-in-rust","owner":"rust-lang","description":"Data for this-week-in-rust.org","archived":false,"fork":false,"pushed_at":"2025-04-25T00:09:58.000Z","size":20729,"stargazers_count":2316,"open_issues_count":27,"forks_count":1217,"subscribers_count":68,"default_branch":"master","last_synced_at":"2025-04-27T04:00:05.165Z","etag":null,"topics":["blog","newsletter","pelican","rust"],"latest_commit_sha":null,"homepage":"https://this-week-in-rust.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rust-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-11-05T22:13:01.000Z","updated_at":"2025-04-26T04:01:20.000Z","dependencies_parsed_at":"2023-12-06T04:23:07.493Z","dependency_job_id":"eb4283c7-ca1e-41a0-b50e-1d35bf50cf87","html_url":"https://github.com/rust-lang/this-week-in-rust","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fthis-week-in-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fthis-week-in-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fthis-week-in-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-lang%2Fthis-week-in-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-lang","download_url":"https://codeload.github.com/rust-lang/this-week-in-rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251085198,"owners_count":21533842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blog","newsletter","pelican","rust"],"created_at":"2024-07-30T19:00:57.011Z","updated_at":"2025-12-18T01:41:27.090Z","avatar_url":"https://github.com/rust-lang.png","language":"Python","funding_links":[],"categories":["Python","HTML","语言资源库"],"sub_categories":["books"],"readme":"This Week in Rust\n=================\n\nContent for [this-week-in-rust.org](http://this-week-in-rust.org). Made available under CC-BY-SA.\n\nAll code Copyright 2014 Ember Arlynx, made available under [the MIT\nlicense](http://mit-license.org/).\n\n# TWiR Editors\n\n* [nellshamrell](https://github.com/nellshamrell)\n* [llogiq](https://github.com/llogiq)\n* [cdmistman](https://github.com/cdmistman)\n* [ericseppanen](https://github.com/ericseppanen)\n* [extrawurst](https://github.com/extrawurst)\n* [U007D](https://github.com/U007D) \n* [joelmarcey](https://github.com/joelmarcey)\n* [mariannegoldin](https://github.com/mariannegoldin)\n* [bennyvasquez](https://github.com/bennyvasquez)\n* [bdillo](https://github.com/bdillo)\n\n## Language Reviewers\n\n* [yuk1ty](https://github.com/yuk1ty) - Japanese\n* [rpruizc](https://github.com/rpruizc) - Spanish\n* [matheus-consoli](https://github.com/matheus-consoli) - Portuguese\n* [MATRIXKOO](https://github.com/MATRIXKOO) - Chinese\n* [Folyd](https://github.com/Folyd) - Chinese\n\n## PRs for next issue are now being accepted\n\nTo propose content for inclusion in the next newsletter (found in the `drafts/`\nfolder), create a new [Pull Request](https://github.com/rust-lang/this-week-in-rust/pulls) updating the relevant section in the \ndraft.\n\nAlternately, tweet us [@thisweekinrust](https://twitter.com/thisweekinrust).\n\n## What do we look for when considering whether to include something in This Week in Rust?\n\nThis Week in Rust is intended to highlight the incredible work of the Rust Community. \n\nWhat we are generally looking for includes:\n\n* how-to intros (and advanced deep dives) into Rust concepts and areas\n* Rust walkthroughs that explain concepts in different ways than well known resources like [the Rust book](https://doc.rust-lang.org/stable/book/), [Rustlings](https://github.com/rust-lang/rustlings), and [Rust by Example](https://doc.rust-lang.org/stable/rust-by-example/)\n* updates on tooling when in long form or framed as a tutorial (for more details, see what we are not looking for below)\n* Rust-related podcast episodes\n* Rust-related screenshots and videos\n* Rust meetup recordings\n* Rust meetup announcements\n* Presenter slide decks on Rust\n* Observations and thoughts on Rust and the Rust community\n* Calls for participation in Rust open source projects\n* Rust job announcements\n* and more!\n\nWhat we are generally NOT looking for includes:\n\n* Anything that violates the [Rust Community Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct)\n* Rants or anything degrading to any part or member of the Community. Rather than submitting an article about what is wrong with something, we would much rather you write something that explains how you'd make it better.\n* Duplicates of recent posts (even with the wording changed slightly)\n* Anything behind a paywall (this includes Medium's paid article / members-only mechanism)\n* Anything that requires information to be shared/captured (like an email address) in order to access\n\n## Projects/Tooling Updates\n\nThere are further guidelines for the Projects/Tooling Updates Section\n\nWe include:\n* Updates on tooling when in long form or framed as a tutorial (this can be through a blog, through GitHub, through a newsletter, and more) - it must have a high amount of Rust specific info (examples in Rust, notes on things learned about Rust in the process of creating/updating the project, etc.)\n* Updates on tooling that call out specific contributors - it is wonderful to highlight all the great people contributing to Rust OSS projects (Note - the update still must include a high amount of Rust specific info)\n* Changelogs of projects (though we strongly prefer the changelogs be accompanied with details on the changes, guides to using the changes, etc.)\n\nWe do not include:\n* Links that are solely to a GitHub repo or crate on crates.io. While we would love to include these, there are too many being created/updated every week for us to include them all. We encourage you to write up an introduction to your project with examples, information you learned through creating the project, changes you recently made to the project, etc.\n\nNotes:\n* A small description of the project or the update in your link is encouraged (for example: FooBar 1.0: adding support for Baz)\n* We discourage submitting links and link descriptions that are solely of a commercial/sales nature\n\nThese are meant to be guidelines, if you are ever not sure about whether something should be included please feel free to open a pull request anyway and we can discuss it!\n\nThe editors of This Week in Rust do reserve the right to make the decision about whether to include something or not, but we intend to do so in a way that is as transparent as possible.\n\n## Events\n\nThere are further guidelines for the Events Section\n\nWe include:\n* Events/workshops that are free of charge\n\nWe do not include:\n* Commercial offerings\n\n## Link style guidelines:\n\nThe link text should be the same as the page's title. If the title seems to need additional context (for example, if the title is \"What's New\" and should have the project name added), please ask in the PR comments.\n\nLinks should use the most canonical form. For example, if `example.tech` redirects to `www.example.com`, then the latter is preferred.\n\nLinks should not contain unnecessary tracking parameters, e.g. `utm_source`, `utm_campaign`.\n\nSome prefixes are used, and should be placed to the left of the link.\n- `[video]` for videos\n- `[audio]` for podcasts or other audio.\n- `[series]` for articles that are one of a series.\n- 2-letter languages codes (e.g. `[ZH]`, `[ES]`, `[FR]`) for content in a language other than English.\n\n## Community sub-categories\n\nEditors will sort community links into sub-categories. The following sub-categories are currently used:\n- **Official** -- rust-lang.org blog posts and other official Rust team communications.\n- **Foundation** -- foundation.rust-lang.org blog posts and other official foundation communications.\n- **Project/Tooling Updates** -- News about the progress of a Rust project. Must be more informative than just a changelog.\n- **Newsletters** -- Regularly scheduled articles about an area of Rust development, e.g. posts titled \"This Month in ___\".\n- **Research** -- Academic Papers that are about Rust or contain significant Rust content.\n- **Observations/Thoughts** -- Articles about Rust.\n- **Rust Walkthroughs** -- Articles that include a significant amount of Rust source code, that walk the reader through building something.\n- **Miscellaneous** -- Links that don't clearly fit in other sub-categories.\n\nMost blog posts about Rust belong in **Rust Walkthroughs** if they show how something is done (including source code), otherwise **Observations/Thoughts**. Articles that don't contain much Rust content, or news articles that mention Rust, won't always be accepted, but when they are they can be placed in the **Miscellaneous** sub-category.\n\nIf a set of related links is published (e.g. from a large Rust conference), the editors may choose to invent a new category just for that issue.\n\n## Call for Participation guidelines\n\nThe Call for Participation section covers both projects looking for contributors and events recruiting speakers. \n\n### CFP - Projects \n\nThe project section will include good issues for someone looking to get into Rust, or for someone who wants to find a new project to contribute to. Guidelines:\n\n* Ensure that your project has at least one [Open Source Initiative](https://opensource.org/)-approved license.\n* Ensure that the issue tracker for your project is publicly accessible.\n* Create a new issue in your issue tracker and clearly describe the task, and include the difficulty level (easy/medium/hard/tedious), either as a tag/label or somewhere in the title/description.\n* Include a link to your contribution guidelines in the task, and call out any specific requirements for contributors (e.g., copyright waiver).\n* The issue will be omitted if it has been completed and/or closed since it was submitted to the forums.\n\n### CFP - Events\n\nThe CFP events section will include CFP links for events that either heavily feature Rust content, or have a specific Rust track. It's not appropriate for general tech conferences, unless there is a large enough coding or Rust section to appeal to the TWiR audience. \n\nGenerally speaking (excepting the rolling 30 day window), if it would be listed in the Events section of TWiR, it will be right for this section as well. \n\n# Publishing \n\nThe editors have a detailed guide for publishing that is stored elsewhere, but this content is retained here as well.\n\n## How I get PR lists:\n\n```\ngit log --author=bors --since='MM/DD/YYYY 12:00PM' --until='MM/DD/YYYY 12:00PM' --pretty=oneline \u003e ~/entropy/twir.txt\n```\n\nedit in vim to get rid of everything but PR number, copy into clipboard\n\n```\nfor pr in $(xsel -ob); do firefox https://github.com/mozilla/rust/pull/$pr; sleep 0.07; done\n```\n\nwait a long time...\nwrite TWIR\n\nAlternatively use GitHub search:\n\n```\nhttps://github.com/rust-lang/rust/pulls?q=is%3Apr+is%3Amerged+updated%3A2014-11-03..2014-11-10\n```\n\n## How I get new contributors:\n\nUse the included `new_contribs.sh` script:\n\n  new_contribs.sh 6/21/2014\n\n## Building\n\nTo ensure consistency across development setups, we use a [Docker](https://www.docker.com) container-based\nworkflow for building the website and email newsletter. Similarly, we use a `makefile` to Ensure you have Docker installed on your system if\nyou intend to build the website or email newsletter.\n\n### Building the website\n\n*Before attempting to build the website, ensure Docker is in a running state on your system.*\n\n* Enter the `publishing/` directory:\n  ```sh\n  cd publishing\n  ```\n* Run the Docker build and website local-host command:\n  ```sh\n  make build \u0026\u0026 make generate-website \u0026\u0026 make host-content\n  ```\n* View the website locally at default http://localhost:8000, or specific posts\n  at http://localhost:8000/blog/{YEAR}/{MONTH}/{DAY}/{ISSUE}/\n\nNote: If looking to test the website's search functionality locally, you will need to adjust the [`TESTING_LOCALLY`](https://github.com/rust-lang/this-week-in-rust/blob/dc127f17fcabbf0f058eb3d5a3febba434ddca83/pelicanconf.py#L7)\nvariable to `True`.\n\n### Building the newsletter\n\n*Before attempting to build the email newsletter, ensure Docker is in a running state on your system.*\n\n* Enter the `publishing/` directory:\n  ```sh\n  cd publishing\n  ```\n* Run the Docker build and website local-host command:\n  ```sh\n  make build \u0026\u0026 make generate-email \u0026\u0026 make host-content\n  ```\n* View the email newsletter formatting of specific posts at\n  http://localhost:8000/blog/{YEAR}/{MONTH}/{DAY}/{ISSUE}/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Fthis-week-in-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-lang%2Fthis-week-in-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-lang%2Fthis-week-in-rust/lists"}