{"id":15165099,"url":"https://github.com/casper-network/juliet","last_synced_at":"2025-09-30T20:31:48.086Z","repository":{"id":208832480,"uuid":"719614811","full_name":"casper-network/juliet","owner":"casper-network","description":"A TCP-based, multiplexing, backpressuring low-overhead transport protocol.","archived":false,"fork":false,"pushed_at":"2024-03-14T12:31:27.000Z","size":558,"stargazers_count":9,"open_issues_count":1,"forks_count":11,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-12-29T13:35:55.732Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/casper-network.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-11-16T14:40:59.000Z","updated_at":"2024-09-17T02:26:12.000Z","dependencies_parsed_at":"2023-11-27T17:30:14.792Z","dependency_job_id":"c075d47d-a4df-4d17-b4bb-6628549daa7e","html_url":"https://github.com/casper-network/juliet","commit_stats":null,"previous_names":["casper-network/juliet"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casper-network%2Fjuliet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casper-network%2Fjuliet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casper-network%2Fjuliet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casper-network%2Fjuliet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/casper-network","download_url":"https://codeload.github.com/casper-network/juliet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234774946,"owners_count":18884527,"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":[],"created_at":"2024-09-27T04:01:03.352Z","updated_at":"2025-09-30T20:31:42.802Z","avatar_url":"https://github.com/casper-network.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Juliet protocol implementation\n\nThis crate implements the Juliet multiplexing protocol version 1.0.1 as laid out in the [Juliet RFC](https://github.com/casper-network/juliet/blob/rfc-1.0.1/RFC.md). It aims to be a secure, simple, easy to verify/review implementation that is still reasonably performant.\n\n## Benefits\n\n The Juliet protocol comes with a core set of features, such as\n\n* carefully designed with security and DoS resilience as its foremoast goal,\n* customizable frame sizes,\n* up to 256 multiplexed, interleaved channels,\n* backpressure support fully baked in, and\n* low overhead (4 bytes per frame + 1-5 bytes depending on payload length).\n\nThis crate's implementation includes benefits such as\n\n* a side-effect-free implementation of the Juliet protocol,\n* an `async` IO layer integrated with the [`bytes`](https://docs.rs/bytes) crate to use it, and\n* a type-safe RPC layer built on top.\n\n## Examples\n\nFor a quick usage example, see `examples/fizzbuzz.rs`.\n\n## `tracing` support\n\nThe crate has an optional dependency on the [`tracing`](https://docs.rs/tracing) crate, which, if enabled, allows detailed insights through logs. If the feature is not enabled, no log statements are compiled in.\n\nLog levels in general are used as follows:\n\n* `ERROR` and `WARN`: Actual issues that are not protocol level errors -- peer errors are expected and do not warrant a `WARN` level.\n* `INFO`: Insights into received high level events (e.g. connection, disconnection, etc), except information concerning individual requests/messages.\n* `DEBUG`: Detailed insights down to the level of individual requests, but not frames. A multi-megabyte single message transmission will NOT clog the logs.\n* `TRACE`: Like `DEBUG`, but also including frame and wire-level information, as well as local functions being called.\n\nAt `INFO`, it is thus conceivable for a peer to maliciously spam local logs, although with some effort if connection attempts are rate limited. At `DEBUG` or lower, this becomes trivial.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcasper-network%2Fjuliet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcasper-network%2Fjuliet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcasper-network%2Fjuliet/lists"}