GithubHelp home page GithubHelp logo

mrwhy-orig / jnet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from masesgroup/jnet

0.0 0.0 0.0 229.95 MB

Java/JVM suite for .NET: a comprehensive suite of libraries and tools to use Java/JVM APIs (Java, Scala, Kotlin, ...) and .NET side-by-side

Home Page: https://jnet.masesgroup.com/

License: Apache License 2.0

Java 0.79% C# 99.18% PowerShell 0.03%

jnet's Introduction

JNet: Java/JVM suite for .NET

JNet is a comprehensive suite of libraries and tools to use Java/JVM APIs (Java, Scala, Kotlin, ...) and .NET side-by-side.

Libraries and Tools

JNet JNet.Templates JNetPSCore JNetCLI JNetReflector JNetPS
JNet nuget
downloads
JNet.Templates nuget
downloads
JNetPSCore nuget
downloads
JNetCLI nuget
downloads
JNetReflector nuget
downloads
JNetPS

Pipelines

CI_BUILD CodeQL CI_RELEASE

Project disclaimer

JNet is a suite, curated by MASES Group, can be supported by the open-source community.

Its primary scope is to support other, public or internal, MASES Group projects: open-source community and commercial entities can use it for their needs and support this project, moreover there are dedicated community and commercial subscription plans.

The repository code and releases may contain bugs, the release cycle depends from critical discovered issues and/or enhancement requested from this or other projects.

Looking for the help of experts? MASES Group can help you design, build, deploy, and manage applications mixing .NET and JVM enabled languages.


Scope of the project

This project aims to create a set of libraries and tools to direct access, from .NET, all the features available in the Java Platform, this is the counterpart of JCOReflector.

There are many client libraries written to manage communication with Java. Conversely, this project use directly the Java packages giving more than one benefit:

  • all implemented features are availables at no extra implementation costs, see JNet usage;
  • avoids any third party communication protocol implementation;
  • access all features made available from Java platform.

So, for example, do you want an ArrayList? Just write in C# a line of code like this:

Java.Util.ArrayList<string> alist = new Java.Util.ArrayList<string>();

See JNet usage for a comprehensive example.

Community and Contribution

Do you like the project?

Do you want to help us?

  • put a โญ on this project
  • open issues to request features or report bugs ๐Ÿ›
  • improves the project with Pull Requests

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].

Summary

News

  • V1.4.8+: From version 1.4.8 there is a new project, named JNetReflector (still in development phase), able to build C# gateway classes from JARs containing the JVM classes, exactly the same JCOReflector does for .NET in JVM.
  • V1.4.9+: From version 1.4.9 there are two new projects:
    • JNetPSCore: the core library for PowerShell development, it can be extended in other projects based on JNet;
    • JNetPS: a PowerShell module to use JNet within a PowerShell shell.
  • V1.5.2+: strong improvement of JNetReflector; it is used to generate almost all Java 11 classes available in the corresponding JNet version
  • V1.5.3+: JNetReflector manages generics and almost all classes of Java SE 11 are covered: see JNet Reflector usage
  • V2.0.0+: the most notable changes in this version are in:
    • JNet: complete review of all classes based on automatic generation done using JNetReflector
    • JNetReflector: improvements in many areas from generation of .NET interfaces to generics and where clauses, full story in masesgroup#178
  • V2.3.0+: the most notable changes in this version are in:
    • JNet: review of classes based on latest updates of JNetReflector
    • JNetReflector: use Java.Lang.String, by default, instead of string (System.String) (see masesgroup#363)
  • V2.4.0+: the most notable changes in this version are in:
    • JNet: review of classes based on latest updates of JNetReflector
    • JNetReflector: use native types only when JVM counter-part is a native type (see masesgroup#371)
    • JNetReflector: can use signature to invoke JVM methods (see masesgroup#374) or fallback to current behavior
  • V2.5.0+: the most notable changes in this version are in:
    • Tools and Docker images update to .NET 8
    • JNetReflector: create side-by-side class on each listener used in case of pure JVM interface (see masesgroup#393)
    • JNet:
      • review of classes based on latest updates of JNetReflector
      • enhanced ByteBuffer management
      • speed-up array/list conversion

Runtime engine

JNet uses JCOBridge, and its features, to obtain many benefits:

  • Cyber-security:
    • JVM and CLR, or CoreCLR, runs in the same process, but are insulated from each other;
    • JCOBridge does not make any code injection into JVM;
    • JCOBridge does not use any other communication mechanism than JNI;
    • .NET (CLR) inherently inherits the cyber-security levels of running JVM;
  • Direct access the JVM from any .NET application:
    • Any Java/Scala/Kotlin/... class can be directly managed;
    • No need to learn new APIs: we try to expose the same APIs in C# style;
    • No extra validation cycle on protocol and functionality: bug fix, improvements, new features are immediately available;
    • Documentation is shared;
  • Dynamic code: it helps to write a Java/Scala/Kotlin/etc seamless language code directly inside a standard .NET application written in C#/VB.NET: look at this simple example and JNet APIs extensibility.

JCOBridge resources

Have a look at the following JCOBridge resources:

jnet's People

Contributors

masesdevelopers avatar github-actions[bot] avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.