6 dépôts
Direct integration with Java libraries and classes within the same virtual machine.
Distinct from Java Virtual Machine Bridges: Existing candidates focus on bridges between different languages or JVM runtimes, not the inherent compatibility of a JVM-native language.
Explore 6 awesome GitHub repositories matching programming languages & runtimes · Java Interoperability. Refine with filters or upvote what's useful.
Groovy est un langage de programmation pour la JVM et un framework de métaprogrammation qui fournit un environnement compatible Java pour construire des applications. Il fonctionne comme un langage de script dynamique et un outil pour créer des langages dédiés (DSL), permettant l'exécution de scripts personnalisés et la création de mini-langages spécialisés avec une syntaxe concise. Le projet se distingue par sa capacité à modifier le comportement du programme et les définitions de classes via la métaprogrammation à la compilation et au runtime. Il utilise un modèle de typage hybride qui combine la résolution dynamique de méthodes avec un typage statique optionnel pour équilibrer flexibilité et performance d'exécution. Le langage couvre un large éventail de capacités, incluant les patterns de programmation fonctionnelle, les transformations d'arbres de syntaxe abstraite (AST) et l'intégration directe de bibliothèques Java. Il inclut également des utilitaires de sécurité pour prévenir les injections SQL, sécuriser le parsing XML et garantir un parsing sûr des données structurées. Le système traduit la syntaxe de haut niveau en bytecode JVM pour une exécution sur toute machine virtuelle Java compatible.
Enables direct integration and interoperability with Java libraries and classes within the same virtual machine.
Joda-Time est une bibliothèque et un framework de date et d'heure Java utilisés pour analyser, représenter et calculer des données temporelles. Il fournit une API temporelle thread-safe qui utilise des objets immuables pour garantir la sécurité de la concurrence et adhère à la norme ISO8601. Le projet se distingue par son système de calendrier enfichable, qui prend en charge diverses chronologies, notamment les calendriers grégorien, bouddhiste, copte, éthiopien et islamique. Il fonctionne également comme un outil de gestion de fuseau horaire, utilisant une base de données de zones interne basée sur l'IANA pour traduire les instants et mettre à jour les règles d'heure d'été indépendamment du runtime hôte. La bibliothèque couvre un large éventail de capacités, y compris l'arithmétique temporelle pour les calculs de durée et de période, l'administration des fuseaux horaires et le formatage date-heure pour le langage naturel ou des modèles personnalisés. Elle inclut également des outils pour les tests temporels déterministes en simulant l'horloge système. Le projet fournit des utilitaires d'interopérabilité pour convertir les types de bibliothèque en classes de date et de calendrier Java standard.
Provides utilities to convert library date-time types into standard Java date and calendar classes for external compatibility.
Apache Dubbo Go est une implémentation en langage Go du framework Apache Dubbo conçue pour construire des microservices haute performance. Il sert de framework RPC inter-langages et de couche de communication pour microservices, permettant des appels de procédure à distance entre des services écrits dans différents langages de programmation. Le framework fonctionne comme un ensemble d'outils de gouvernance de services et un proxy de service mesh distribué, permettant aux plans de données de se connecter à des plans de contrôle externes en mode proxy ou sans proxy. Il fournit spécifiquement une couche de compatibilité pour faciliter la communication entre les services Go et Java grâce à des définitions agnostiques au langage et un encodage de données standardisé. Le système couvre un large éventail de capacités distribuées, notamment la découverte dynamique de services, l'équilibrage de charge basé sur des stratégies et la gestion du trafic via des disjoncteurs (circuit breakers) et la limitation de débit (rate limiting). Il intègre l'observabilité grâce au traçage distribué des requêtes et aux métriques de performance, tout en assurant la sécurité avec le chiffrement de la couche de transport et le contrôle d'accès basé sur l'identité. La productivité des développeurs est soutenue par une interface en ligne de commande pour le bootstrapping d'applications et la génération automatisée de stubs RPC à partir de définitions d'interfaces.
Handles Java-specific data types and exceptions to enable seamless communication between Go and Java-based services.
JRuby est une implémentation du langage Ruby qui s'exécute sur la Java Virtual Machine (JVM). Il sert de runtime multi-langage et d'environnement d'exécution, permettant au code Ruby de s'exécuter sur la JVM et de partager la mémoire avec des applications Java. Le projet fonctionne comme un pont entre Ruby et Java, permettant aux scripts Ruby d'appeler directement des classes et bibliothèques Java. Il fournit également un mécanisme pour intégrer un interpréteur Ruby dans des applications Java afin de permettre le scripting dynamique. Le runtime tire parti de la JVM pour l'évolutivité du système et assure un environnement d'exécution cohérent sur différents systèmes d'exploitation.
Provides direct integration with Java libraries and classes within the same virtual machine.
This project is a Scala programming course and educational resource. It provides a set of lessons covering the core fundamentals of the language, ranging from basic syntax to advanced type systems. The material includes a functional programming tutorial focused on higher-order functions and pattern matching, as well as guides on managing asynchronous execution and concurrency. It also serves as a resource for understanding the Java Virtual Machine and language interoperability. The course covers the application of polymorphism and variance for type-safe data structures and the use of specifi
Explains how to share data structures and call functions between Scala and Java within the JVM.
Frege is a purely functional programming language that compiles to JVM bytecode, providing Haskell-like semantics for the Java platform. It is built around a Haskell-inspired compiler that implements non-strict evaluation and a static type inference system to ensure data immutability and prevent side effects. The project distinguishes itself through a sophisticated type system featuring rank polymorphism, type-class based dispatch, and static purity enforcement. It includes a JVM language bridge and a foreign function interface that map Java classes and interfaces into functional types, allow
Produces standard JVM class files to make functional logic accessible to any JVM language.