All Projects β†’ theolivenbaum β†’ h5

theolivenbaum / h5

Licence: Apache-2.0 license
πŸš€ The next generation C# to JavaScript compiler

Programming Languages

C#
18002 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to h5

yantra
JavaScript Engine for .NET Standard
Stars: ✭ 32 (-67.01%)
Mutual labels:  netcore, javascript-compiler
XXHash
XXHash - Extremely fast hash algorithm,impl for csharp,can process 11.8 GB/s on modern cpu. impl with net core 2.0 and .net
Stars: ✭ 24 (-75.26%)
Mutual labels:  netcore
notification-provider
A Mail Notification Library providing additional features on top of existing Email Notification clients like Microsoft Graph, Direct Send, and more!
Stars: ✭ 19 (-80.41%)
Mutual labels:  netcore
csharp
πŸ“š Recursos para aprender C#
Stars: ✭ 37 (-61.86%)
Mutual labels:  netcore
X.Extensions.Logging.Telegram
Telegram logging provider
Stars: ✭ 32 (-67.01%)
Mutual labels:  netcore
Taskban
A personal productivity tool developed with C# and XAML.
Stars: ✭ 56 (-42.27%)
Mutual labels:  netcore
Hammer
Simple, reliable FHIR validator
Stars: ✭ 27 (-72.16%)
Mutual labels:  netcore
Apex.Serialization
High performance contract-less binary serializer for .NET
Stars: ✭ 82 (-15.46%)
Mutual labels:  netcore
paper-dashboard-angular
Angular version of the original Paper Dashboard.
Stars: ✭ 142 (+46.39%)
Mutual labels:  webdevelopment
DotNetGraph
Create GraphViz DOT graph with .NET / C#
Stars: ✭ 57 (-41.24%)
Mutual labels:  netcore
grandnode2
Free, Open source, Fast, Headless, Multi-tenant eCommerce platform built with .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, LiteDB, Vue.js.
Stars: ✭ 626 (+545.36%)
Mutual labels:  netcore
Chords.py
Neural networks applied in recognizing guitar chords using python, AutoML.NET with C# and .NET Core
Stars: ✭ 24 (-75.26%)
Mutual labels:  netcore
programming-notes
Programming notes. About anything really.
Stars: ✭ 34 (-64.95%)
Mutual labels:  webdevelopment
NETProvider
Firebird ADO.NET Data Provider
Stars: ✭ 113 (+16.49%)
Mutual labels:  netcore
InfluxDB.Client.Net
A C# client object model to help integrate with InfluxDB with CLI languages. Supports both .Net traditional and .Net Core.
Stars: ✭ 95 (-2.06%)
Mutual labels:  netcore
Awesome-Projects-Collection
This is a beginner-friendly repo to make a collection of some unique and awesome projects. Everyone in the community can benefit & get inspired by the amazing projects present over here.
Stars: ✭ 175 (+80.41%)
Mutual labels:  webdevelopment
API-Class
A utility class for calling apis CRUD methods
Stars: ✭ 89 (-8.25%)
Mutual labels:  webdevelopment
LeetCode
leetcode problems solution with C#
Stars: ✭ 64 (-34.02%)
Mutual labels:  netcore
template portfolio
A template for your own Portfolio.
Stars: ✭ 15 (-84.54%)
Mutual labels:  webdevelopment
ProtobufDecoder
A Google Protocol Buffers (Protobuf) payload decoder/analyzer
Stars: ✭ 33 (-65.98%)
Mutual labels:  netcore

h5 πŸš€ - C# to JavaScript compiler

H5 is a modern fork of the original Bridge C# to Javascript compiler, updated to support multi-platform development using .NET 6.0 and .NET Standard 2.1 projects, while dropping support for legacy features and dependencies.

H5 is under active development, and targets a more integrated and faster development experience for C# web-developers. We're also planning to experiment with new ideas to improve compilation speed (such as aggressive caching of emitted code) and possibly integrating C# Source Generators) for even faster code generation.

Package NuGet
Compiler Nuget
Base Library Nuget
Core Library Nuget
SDK Target Nuget
Json Library Nuget
Template Nuget
UI Toolkit Nuget

Getting Started ⚑

Gitter

H5 is fully based on netstandard2.1 & net6.0, and removes all dependencies on the legacy .NET Framework coming from the original Bridge source-code.

To get started with it, you can use the following project template

<Project Sdk="h5.Target/0.0.*">
  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="h5" Version="*" />
    <PackageReference Include="h5.Core" Version="*" />
  </ItemGroup>
</Project>

The Sdk target above (<Project Sdk="h5.Target/0.0.*">) will automatically install (and update) the compiler as a dotnet global tool. You need to update the version /0.0.* to the latest Nuget package.

Don't forget to run dotnet restore to fill the versions with the latest values. You can also manually install it with:

dotnet tool update --global h5-compiler

You can also install a dotnet new template (latest version: Nuget):

dotnet new --install h5.Template::0.0.21601

And create a new project with:

dotnet new h5

Samples

The easiest way to get started is to check out some of the examples of using h5 in this repository.

Breaking Changes πŸ’₯

This fork introduces a series of breaking changes as part of the modernization effort:

  • Projects must explicitly target netstandard2.0.
  • Drop support to the legacy .csproj format (only SDK-style projects are supported)
  • Drop support for legacy (and unused) command line arguments (check h5 -h for the current supported arguments)
  • Compiler is now distributed as a dotnet global tool and have it's own versioning and auto-update on build (this can be disable by setting <UpdateH5>false<UpdateH5/> on your project file.
  • Retyped packages are not supported (as those are maintained by the Bridge authors, and cannot be built separately or consumed without the Bridge NuGet package).
  • Logging and Report options have been removed from the h5.json config file. Logging settings will be available only as a command line argument (and exposed as a Project file option in the future)
  • Hosted Compiler process (to speed up compilation and avoiding reloading assemblies that don't change often (like nuget packages), h5 introduces an off-process compiler server. For now, this process will open a terminal with the compilation logs - but this will be hidden in the future)

Update Notes πŸ“‘

To avoid any conflicts with the original Bridge ecosystem, all packages have been renamed. For upgrading, you can use the following mapping:

Other packages might be added in the future as we experiment with this fork, but we do not aim on providing any kind of Retyped replacement here. If you're missing any specific Retyped package, open an issue and I can take a look into publishing it derived from the Retyped ones.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].