cemoktra / ice-rs Goto Github PK
View Code? Open in Web Editor NEWRust support for zeroc-ice
License: GNU General Public License v2.0
Rust support for zeroc-ice
License: GNU General Public License v2.0
Support passing multiple ice files in slice2rs and demo build.rs
This should optimize the readable of code generation code
TCP and SSL contain duplicate code
Remove duplicate code for TCP/SSL
This will require a static context HashMap in communicator.rs plus setter/getter
Support including ice files in slice parser
Add members to the errors in errors.rs and fill details
Ice allows to derive classes. As rust has no such thing, this needs to be implemented with structs.
Is your feature request related to a problem? Please describe.
We are working on porting an existing codebase to rust. Our ice interface looks like this
enum MessageType { eUNDEFINED, eDEBUG, eVERBOSE, eINFO, eIMPORTANT, eWARN, eERROR, eFATAL, eLogLevelCount };
struct LogMessage{
string who;
long time;
string group;
string tag;
MessageType type;
string what;
string file;
int line;
string function;
string backtrace;
int threadId;
};
This generates a lot of warnings like this
warning: variant `eUNDEFINED` should have an upper camel case name
--> src/gen/armarx/mod.rs:18:5
|
18 | eUNDEFINED = 0i32,
| ^^^^^^^^^^ help: convert the identifier to upper camel case: `EUndefined`
|
= note: `#[warn(non_camel_case_types)]` on by default
Describe the solution you'd like
Adding #[allow(non_camel_case_types)]
in front of enums supresses this warning.
Describe alternatives you've considered
I added it manually, but this is not a feasible solution.
Support passing proxies as arguments in ice functions
Support class keyword in ice files
Can't compile this https://github.com/mumble-voip/mumble/blob/master/src/murmur/Murmur.ice slice at least because of 2 reasons:
i have use ZeroC ICE before,it's very good distributed framework!
i'am happy to see there is somebody build this client for rust!
keep going!
if bother u,sorry.
Add more documentation to ice library and example
Add code to act as ice server and add example
Add an IceObject trait with basic functions for all generated traits.
ice_ping
ice_id
ice_ids
ice_isA
dispatch
The optional example has a shut down method, this should shut down the server.
Currently preferred would be Tokio. But up for discussion.
std::net::TcpStream
with tokio::net::TcpStream
Support optional
Support passing ice configs
In the end the context example should work
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.