nicolaslm / nucleon Goto Github PK
View Code? Open in Web Editor NEWDynamic load balancer written in Rust
License: BSD 2-Clause "Simplified" License
Dynamic load balancer written in Rust
License: BSD 2-Clause "Simplified" License
You may want to replace the SimpleLogger with the env_logger crate, as they appear to do roughly the same thing.
Hello!
I'm new to Rust and this example (load balancer) is very interesting for me.
Can you tell me if I'm correct:
https://github.com/NicolasLM/nucleon/blob/master/src/tcplb.rs#L92
and
https://github.com/NicolasLM/nucleon/blob/master/src/tcplb.rs#L607
are duplicating registering interest about writeable?
So this register or this register can be removed?
Got your reference from one of the social media channels, I would like to discuss a job opportunity with you.. Please let me know if you are open for a change.
Reproduction
cd nucleon
cargo build
Errors
--> /home/kirch/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-serialize-0.3.16/src/serialize.rs:145:45
|
145 | &f_name: &str,
| ^^^^^^^
Compiling sha1 v0.1.1
error: aborting due to previous error
error: Could not compile `rustc-serialize`.
--> /home/kirch/.cargo/registry/src/github.com-1ecc6299db9ec823/nix-0.3.9/src/sched.rs:168:20
|
168 | ffi::clone(mem::transmute(callback), ptr as *mut c_void, flags, &mut cb)
| ^^^^^^^^^^^^^^
|
= note: source type: for<'r> extern "C" fn(*mut std::boxed::Box<std::ops::FnMut() -> isize + 'r>) -> i32 {sched::clone::callback}
= note: target type: *const for<'r> extern "C" fn(*const std::boxed::Box<std::ops::FnMut() -> isize + 'r>) -> i32
= help: cast with `as` to a pointer instead
error: aborting due to previous error
error: Could not compile `nix`.
Solution
Remove Cargo.lock
file and try again.
Build information
uname -a
: Linux mithrandir 4.15.9-1-ARCH #1 SMP PREEMPT Sun Mar 11 17:54:33 UTC 2018 x86_64 GNU/Linux
rustc 1.24.1 (d3ae9a9e0 2018-02-27)
cargo 0.25.0 (96d8071da 2018-02-26)
Cloned commit: daa8f74
This is just an idea related to functionality that is provided by the connectable project:
It would be really great if you could dynamically create new port bindings (for example using redis) to support dynamic environments without a process restart. This way you could use nucleon as a local service proxy/loadbalancer. In addition to that a DNS backend based on SRV records could be used dynamically find all upstream servers that provide a services under a specific local port.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.