{"id":15032045,"url":"https://github.com/saibatizoku/neuras","last_synced_at":"2026-02-18T07:31:57.468Z","repository":{"id":136427158,"uuid":"94852020","full_name":"saibatizoku/neuras","owner":"saibatizoku","description":"A high-level API for networking with ØMQ in Rust","archived":false,"fork":false,"pushed_at":"2021-03-26T21:07:02.000Z","size":172,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-20T03:59:20.657Z","etag":null,"topics":["api","high-level","network","networking","p2p","rust-lang","rust-language","zeromq","zmq"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saibatizoku.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,"publiccode":null,"codemeta":null}},"created_at":"2017-06-20T05:11:10.000Z","updated_at":"2022-11-07T13:13:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"8d959e90-b58b-4ae8-a226-f607ad3adc91","html_url":"https://github.com/saibatizoku/neuras","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/saibatizoku/neuras","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saibatizoku%2Fneuras","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saibatizoku%2Fneuras/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saibatizoku%2Fneuras/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saibatizoku%2Fneuras/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saibatizoku","download_url":"https://codeload.github.com/saibatizoku/neuras/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saibatizoku%2Fneuras/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29572400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T06:19:27.422Z","status":"ssl_error","status_checked_at":"2026-02-18T06:18:44.348Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["api","high-level","network","networking","p2p","rust-lang","rust-language","zeromq","zmq"],"created_at":"2024-09-24T20:17:11.691Z","updated_at":"2026-02-18T07:31:57.453Z","avatar_url":"https://github.com/saibatizoku.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"neuras - A high-level API for networking with ØMQ in Rust\n=========================================================\n\n[![Build Status](https://travis-ci.org/saibatizoku/neuras.svg?branch=master)](https://travis-ci.org/saibatizoku/neuras)\n\n## About\n\nAn attempt at having a [Rust](http://rust-lang.org) high-level API on top of [ØMQ](http://zeromq.org) (aka. _ZeroMQ_, _zmq_),\nas suggested by\n\"[Features of a Higher-Level API](https://zguide.zeromq.org/docs/chapter3/#Features-of-a-Higher-Level-API)\",\nby using tokio's reactor and tools.\n\nThis library uses [rust-zmq](https://github.com/erickt/rust-zmq)'s bindings under the hood.\n\n## Justification\n\nZeroMQ provides a layer of abstraction over common patterns found in network programming. It has a very well-documented API that hides away the underlying complexity of how data is coded/decoded, transmitted, and made available. Its native support for asynchronous communication, peer-to-peer encrypted messaging, as well as the ever-increasing availability of socket options, make it simple and robust to work with.\n\n[ØMQ - The Guide](http://zguide.zeromq.org/page:all) offers a collection of very well thought-out examples, use cases, and the author's clear thoughts regarding concepts such as code quality, design of network infrastructure. It is the first place to go when wanting to learn ØMQ.\n\n## Dependencies\n\n- [ØMQ](http://zeromq.org). Using version \u003e= 4.0.0\n- [rust-zmq](https://github.com/erickt/rust-zmq). Using version \"0.9\".\n\n## Installation\n\n### Update `Cargo.toml`\n\nAdd this to your `Cargo.toml`, under `[dependencies]`:\n\n**`default`**\nThe `default` feature uses the standard `zmq::Socket`. Use this if you have existing `zmq` code, or if you want to use sockets in blocking mode.\n\nAlso, the optional feature `async-tokio` is a default feature.\n\n```\n[dependencies]\nneuras = { git = \"https://github.com/saibatizoku/neuras\" }\n```\n\n#### Optional features\n\n**`async-tokio`**\n\nThe `async-tokio` feature uses `neuras::socket::tokio::TokioSocket`, leveraging `mio`, which has methods for messaging asynchronously with the `Future`, `Stream`, and `Sink` traits. Use this if you want to use sockets with `tokio_core::reactor::Core`. Socket messaging is non-blocking.\n\n```\n[dependencies.neuras]\ngit = \"https://github.com/saibatizoku/neuras\"\nfeatures = [\"async-tokio\"]\n```\n\n### Use in `src/lib.rs`, or `src/main.rs`:\n\n```\nextern crate neuras;\n\nuse neuras;\n```\n\n## Examples\n\nPlease see [examples/tokio-req-rep.rs](examples/tokio-req-rep.rs) for a working example of how to use the REQ-REP messaging pattern with a tokio reactor.\n\nMore examples soon!\n\n## Feature Wish List and Work-In-Progress\n\n- [X] *Automatic handling of sockets* Rust handles memory-safety and automatically enforces that lifetimes stay within the program scope. What this means for us, is that sockets will be dropped when their context goes out of scope.\n- [X] *Portable thread management* Rust handles concurrency using OS-portable threads.\n- [X] *Portable clocks* Rust offers OS-portable clocks in the standard library module `std::time`.\n- [X] *A reactor to replace `zmq_poll()`* \n- [ ] Piping from parent to child threads\n- [ ] Proper handling of `Ctrl-C`\n\n## Misc\n\nHere is a quick guide to [setting up zeromq with Rasbpian](RASPBIAN.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaibatizoku%2Fneuras","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaibatizoku%2Fneuras","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaibatizoku%2Fneuras/lists"}