Giter VIP home page Giter VIP logo

opnsense / plugins Goto Github PK

View Code? Open in Web Editor NEW
808.0 57.0 588.0 12.88 MB

OPNsense plugin collection

Home Page: https://opnsense.org/

License: BSD 2-Clause "Simplified" License

Makefile 0.68% Shell 1.37% PHP 34.53% Volt 15.98% Python 4.70% Perl 0.06% Ruby 0.18% JavaScript 0.92% Mathematica 0.01% CSS 13.49% HTML 1.67% C++ 0.02% SCSS 26.11% D 0.15% Less 0.02% Jinja 0.10% BitBake 0.01%
hacktoberfest

plugins's Introduction

About the OPNsense plugins

The plugins collection offers users and developers a way to quickly build additions for OPNsense that can be optionally installed. As soon as they are upstreamed they will become available to everyone through the firmware GUI pages.

Plugins can do the following:

  • Modify the menu, access control lists and look and feel (themes)
  • Add additional server software and their respective GUI pages
  • Create new authentication methods to be used within other subsystems
  • Provide other types of devices and interfaces to the firewall
  • Pull in additional packages that will update automatically
  • Enhance the backend services with additional work tasks
  • Allow custom start, stop and early scripts
  • Persistent /boot/loader.conf modifications
  • Additional themes for the web GUI

Now we need your help to enrich the plugins. Feel free to contact us at project AT opnsense DOT org or open GitHub issue to get in touch.

Stay safe, Your OPNsense team

A list of currently available plugins

benchmarks/iperf -- Connection speed tester
databases/redis -- Redis DB
devel/debug -- Debugging Tools
devel/grid_example -- A sample framework application
devel/helloworld -- A sample framework application
dns/bind -- BIND domain name service
dns/ddclient -- Dynamic DNS client
dns/dnscrypt-proxy -- Flexible DNS proxy supporting DNSCrypt and DoH
dns/rfc2136 -- RFC-2136 Support
emulators/qemu-guest-agent -- QEMU Guest Agent for OPNsense
ftp/tftp -- TFTP server
mail/postfix -- SMTP mail relay
mail/rspamd -- Protect your network from spam
misc/theme-cicada -- The cicada theme - dark grey onyx
misc/theme-rebellion -- A suitably dark theme
misc/theme-tukan -- The tukan theme - blue/white
misc/theme-vicuna -- The vicuna theme - blue sapphire
net/chrony -- Chrony time synchronisation
net/freeradius -- RADIUS Authentication, Authorization and Accounting Server
net/frr -- The FRRouting Protocol Suite
net/ftp-proxy -- Control ftp-proxy processes
net/google-cloud-sdk -- Google Cloud SDK
net/haproxy -- Reliable, high performance TCP/HTTP load balancer
net/igmp-proxy -- IGMP-Proxy Service
net/mdns-repeater -- Proxy multicast DNS between networks
net/ntopng -- Traffic Analysis and Flow Collection
net/radsecproxy -- RADIUS proxy provides both RADIUS UDP and TCP/TLS (RadSec) transport
net/realtek-re -- Realtek re(4) vendor driver
net/relayd -- Relayd Load Balancer
net/shadowsocks -- Secure socks5 proxy
net/siproxd -- Siproxd is a proxy daemon for the SIP protocol
net/sslh -- sslh configuration front-end
net/tayga -- Tayga NAT64
net/udpbroadcastrelay -- Control udpbroadcastrelay processes
net/upnp -- Universal Plug and Play (UPnP IGD & PCP/NAT-PMP) Service
net/vnstat -- Network traffic monitor
net/wol -- Wake on LAN Service
net/zerotier -- Virtual Networks That Just Work
net-mgmt/collectd -- Collect system and application performance metrics periodically
net-mgmt/lldpd -- LLDP allows you to know exactly on which port is a server
net-mgmt/net-snmp -- Net-SNMP is a daemon for the SNMP protocol
net-mgmt/netdata -- Real-time performance monitoring
net-mgmt/nrpe -- Execute nagios plugins
net-mgmt/telegraf -- Agent for collecting metrics and data
net-mgmt/zabbix-agent -- Zabbix monitoring agent
net-mgmt/zabbix-proxy -- Zabbix monitoring proxy
security/acme-client -- ACME Client
security/clamav -- Antivirus engine for detecting malicious threats
security/crowdsec -- Lightweight and collaborative security engine
security/etpro-telemetry -- ET Pro Telemetry Edition
security/intrusion-detection-content-et-open -- IDS Proofpoint full ET open ruleset complementary subset for ET Pro Telemetry edition
security/intrusion-detection-content-et-pro -- IDS Proofpoint ET Pro ruleset (needs a valid subscription)
security/intrusion-detection-content-snort-vrt -- IDS Snort VRT ruleset (needs registration or subscription)
security/maltrail -- Malicious traffic detection system
security/openconnect -- OpenConnect Client
security/softether -- Cross-platform Multi-protocol VPN Program (development only)
security/stunnel -- Stunnel TLS proxy
security/tinc -- Tinc VPN
security/tor -- The Onion Router
security/wazuh-agent -- Agent for the open source security platform Wazuh
sysutils/apcupsd -- APCUPSD - APC UPS daemon
sysutils/apuled -- PC Engine APU LED control (development only)
sysutils/dec-hw -- Deciso hardware specific information
sysutils/dmidecode -- Display hardware information on the dashboard
sysutils/git-backup -- Track config changes using git
sysutils/hw-probe -- Collect hardware diagnostics
sysutils/lcdproc-sdeclcd -- LCDProc for SDEC LCD devices
sysutils/mail-backup -- Send configuration file backup by e-mail
sysutils/munin-node -- Munin monitoring agent
sysutils/nextcloud-backup -- Track config changes using NextCloud
sysutils/node_exporter -- Prometheus exporter for machine metrics
sysutils/nut -- Network UPS Tools
sysutils/puppet-agent -- Manage Puppet Agent
sysutils/smart -- SMART tools
sysutils/virtualbox -- VirtualBox guest additions
sysutils/vmware -- VMware tools
sysutils/xen -- Xen guest utilities
vendor/sunnyvalley -- Vendor Repository for Zenarmor (a.k.a Sensei, Next Generation Firewall Extensions)
www/OPNProxy -- OPNsense proxy additions
www/c-icap -- c-icap connects the web proxy with a virus scanner
www/cache -- Webserver cache
www/caddy -- Easy to configure Reverse Proxy with Automatic HTTPS and Dynamic DNS
www/nginx -- Nginx HTTP server and reverse proxy
www/squid -- Squid is a caching proxy for the web
www/web-proxy-sso -- Kerberos authentication module

A brief description of how to use the plugins repository

The workflow of the plugins repository is quite similar to the core repository, although the plugins have one source directory per plugin, while the core can be thought of a lone plugin.

Commits for individual plugins should therefore be split into individual chunks for each src/ directory so that they can be reviewed separately and also be applied remotely.

When an OPNsense release is built, the plugins are automatically added to the final package repository.

The most useful Makefile targets and their purpose is described below.

The make targets for the root directory:

  • clean: remove all changes and unknown files
  • lint: run syntax checks
  • list: print a list of all plugin directories with comments
  • style-fix: apply style fixes
  • style: run style checks
  • sweep: apply whitespace fixes

The make targets for any plugin directory:

  • clean: remove all changes and unknown files
  • collect: gather updates from target directory
  • install: install to target directory
  • lint: run syntax checks
  • package: creates a package
  • upgrade: upgrades existing package
  • remove: remove known files from target directory
  • style-fix: apply style fixes
  • style: run style checks
  • sweep: apply whitespace fixes

plugins's People

Contributors

8191 avatar adschellevis avatar alphakilo avatar andrewheberle avatar billgertz avatar devnan0 avatar dharrigan avatar evbevz avatar fabianfrz avatar fichtner avatar fraenki avatar g-a-c avatar jan-win1993 avatar jkellerer avatar kekek2 avatar kulikov-a avatar manusfreedom avatar marcquark avatar marjohn56 avatar mimugmail avatar mmetc avatar monviech avatar noyb avatar opnsenseuser avatar patschi avatar pmhausen avatar reneschuster avatar sestary avatar starkstromkonsument avatar vnxme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plugins's Issues

vnstat

Hi,

when there will be the vnstat plugin on opnsense ? If there is anything I can help to make it work, please tell me. I am none from Forum !

thanks,

plugin install causes templates to fail

Hi Ad, this isn't severe, but I think we should keep track of this. Installed all plugins at once on a fresh 16.7.8 and it gave me the following errors:

Nov 15 15:26:21	configd.py: [1a459910-41df-408a-8c17-9439741483d4] Inline action failed with OPNsense/Tinc OPNsense/Tinc/tinc_deploy.xml 'NoneType' object has no attribute '__getitem__' at Traceback (most recent call last): File "/usr/local/opnsense/service/modules/processhandler.py", line 505, in execute return ph_inline_actions.execute(self, inline_act_parameters) File "/usr/local/opnsense/service/modules/ph_inline_actions.py", line 52, in execute filenames = tmpl.generate(parameters) File "/usr/local/opnsense/service/modules/template.py", line 308, in generate raise render_exception Exception: OPNsense/Tinc OPNsense/Tinc/tinc_deploy.xml 'NoneType' object has no attribute '__getitem__'
Nov 15 15:24:48	configd.py: [4ba75234-bf0b-4000-a785-fac8860cc9a2] Inline action failed with OPNsense/HelloWorld OPNsense/HelloWorld/helloworld.conf 'collections.OrderedDict object' has no attribute 'helloworld' at Traceback (most recent call last): File "/usr/local/opnsense/service/modules/processhandler.py", line 505, in execute return ph_inline_actions.execute(self, inline_act_parameters) File "/usr/local/opnsense/service/modules/ph_inline_actions.py", line 52, in execute filenames = tmpl.generate(parameters) File "/usr/local/opnsense/service/modules/template.py", line 308, in generate raise render_exception Exception: OPNsense/HelloWorld OPNsense/HelloWorld/helloworld.conf 'collections.OrderedDict object' has no attribute 'helloworld'
Nov 15 15:23:57	configd.py: [c8538f17-c3de-4152-822a-9cee9a25c264] Inline action failed with OPNsense/HAProxy OPNsense/HAProxy/haproxy.conf 'collections.OrderedDict object' has no attribute 'HAProxy' at Traceback (most recent call last): File "/usr/local/opnsense/service/modules/processhandler.py", line 505, in execute return ph_inline_actions.execute(self, inline_act_parameters) File "/usr/local/opnsense/service/modules/ph_inline_actions.py", line 52, in execute filenames = tmpl.generate(parameters) File "/usr/local/opnsense/service/modules/template.py", line 308, in generate raise render_exception Exception: OPNsense/HAProxy OPNsense/HAProxy/haproxy.conf 'collections.OrderedDict object' has no attribute 'HAProxy'

security/tinc: 17.1 interface gets lost

When you install the tinc plugin you see a interface TINC in the interface section / rules section.
You can see the entry in section in the config.xml

You can configure a network/host like it is supposed, you then do a tinc daemon restart. You can see an tinc0 interface on the cli.

Issue 1
If you know reboot, the interface gets lost in opnsense, will though stay on the cli, so it gets created. You cannot really use the assign mode in the interfaces section, since this does not create a tinc like entry with all this dynamic...virtual and all this inside.

Issues 2 if you re-assign the interface in the GUI:
If you though do so and then reboot, you will cause a supernova, since the WAN/LAN interfaces are shifted, so WAN will be lan and you cannot connect to your box.

HAproxy frontend: allow advanced options for Listen Addresses

One should be able to add additional configuration settings at the very end of each listen address for example:

npn http/1.1
npn spdy/2
accept-proxy npn http/1.1
accept-proxy npn ssh/2.0

As a workaround, one could currently add those settings at the very end of "Advanced SSL options". However, one needs to add some SSL settings first, e.g.:

no-sslv3 no-tls-tickets no-tlsv10 no-tlsv11 ciphers EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA npn http/1.1

collectd plugin

As we now have collectd available from the default repo would someone like to make this pluggable.

We use it for remote monitoring of opnsense boxes that I do not have direct access to, imagine they are behind someone else network that permits outbound connections but not inbound, we use the graphite plugin to send stats back to a remote server without needing to worry about a VPN tunnel.

Collectd can do a whole lot more beyond this, maybe it could be a good replacement for some of the RRD backend stuff? - There are plugins that could monitor other processes such as unbound, ntp, openvpn and so on.

https://collectd.org/features.shtml

GUI Ideas:

Enable / disable various plugins.
Set targets for sending data to remote collectors via graphite etc.
Some basic options to configure plugin variables.

NAT64 via Tayga

Since FreeBSD doesn't provide NAT64 natively, maybe Tayga could fill that role? I have no experience with Tayga, though, and I don't know if it'd work with all IPv6 setups (like TunnelBroker).

net/haproxy: missing log messages when not run as root

If the HAProxy plugin is not run as root (default), the log will only contain startup messages:

Oct 11 16:47:00 fw1 haproxy[70395]: Proxy foo_frontend started. 
Oct 11 16:47:00 fw1 haproxy[70395]: Proxy foo_backend started. 

But any additional logging will not be available, i.e. messages regarding health checks:

Oct 11 16:52:50 fw1 haproxy[9070]: Health check for server foo_backend/host3 succeeded, reason: Layer7 check passed, code: 200, info: "HTTP content check matched", check duration: 14ms, status: 3/3 UP. 

security/acme-client: properly handle issuer certs

Currently our LE plugin does not import LE CA certificates, but instead bundles them directly with the LE certificate (see

// Read cert fullchain
$cert_fullchain_content = @file_get_contents($cert_fullchain_filename);
). Note that this is not really supported, as the OPNsense GUI shows the bundled cert as plain text when clicking on the show certificate info button in System -> Trust -> Certificates.

Maybe a better approach would be to import the LE Authority (from the LE certificate fullchain) as a new CA (if it does not exist yet) and link the LE certificate to this CA after the import. I'd use the import_ca() function in this case (found here https://github.com/opnsense/core/blob/4169afd16e614a418aa08d017f21258121aae32a/src/www/system_camanager.php#L33-L72).

The benefit is obviously no hackish bundled CA and likely better application support (HAProxy is able to handle the bundled CA cert properly, but other applications may not โ€“ lighttpd?).

I assume that #77 might be related to this.

web-proxy-sso: TODO list for public release

  • fix POST issue: {"errorMessage":"Error at /usr/local/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php:520 - array_key_exists() expects parameter 2 to be array, string given (errno=2)"}
  • copyright header style updates
  • change menu location
  • adjust squid.conf and rc.conf.d/squid
  • alt-auth hook to prevent local user authentication
  • unwind auth server vs. squid authenticator
  • protect exec() calls with exec_safe()
  • GUI updates for actions
  • testing during 16.7.x series
  • Use a drop-down list for Domain Version
  • /etc/rc.conf.d/ssoproxyad is not sourced because the service is "squid" <-- need an /etc/rc.conf.d/squid DIRECTORY instead

Currently required patching for 16.7.7:

# opnsense-patch -c plugins 57cfcddf 916d315

template revoke on +PRE_DEINSTALL

If we do have a revoke, we should call it on +PRE_DEINSTALL adjusted to +TARGETS files,
then reload templates under +POST_DEINSTALL again...

security/tinc: Features request for Tinc GUI

  • Add a field to set custom port number (Tinc option)

  • Add field for Mode option: router | switch | hub (Tinc option)

  • Add field for setting the Ping Time-Out (Tinc option, for slow connections)

  • Allow FQDN host names in ext. Address field, so that it can work with Dynamic DNS (Tinc supports this according to tinc documentation). Currently field only allows IP address. I think this needs to be changed in 2 places in the GUI:

  1. In the This Host of the Network section: Possible solutions (but I'm not sure!): Allow FQDN host name or allow to use keyword 'dynamic' (consistent with Gateway IP Address field under gateways), or replace with interface binding dropdown box (since this is the listen to IP address)?
  2. Under Hosts (when creating a new host): Allowing FQDN host names in the ext. Address field.

If you need a tester for this, let me know.

HAproxy server does not respect SSL

Using the latest version 16.7, the HAproxy plugin does not respect SSL for servers.
Even though the SSL option was enabled, the resulting haproxy.conf file misses the addition "ssl" at the end of the server entry.

Virtualbox guest additions

Hey thanks for the awsome project guys. I have OPNsense running on a Vbox virtual machine.
I want to enable usb support to use a dualband wifi dongle to have my wireless devices connecting to OPNsense.

When I run pkg install virtualbox-ose-additions it says it cant be found,

unable to update OPNsense repository

Now i heard something about a different install manager? But I can't find anything about it?

Thanks

Feature Request: OSPF or BGP

Feature request for someone to write an OSPF or BGP plugin to allow for dynamic routing on internal networks and VPNs.

This would probably use Quagga or Bird in either instance.

acme-client: DNS-01/nsupdate: doesn't allow FQDN in the name

when you put a FQDN in a certificate name request, you get: Should be a string between 1 and 255 characters.

if you remove all the special characters (INCLUDING PERIODS(!!)), it sends the unqualified name as the CN= to LE, and gets a 400 error:

[Sun Feb 5 00:00:07 CST 2017] new-authz error: {"type":"urn:acme:error:malformed","detail":"DNS name does not have enough labels","status": 400}
[Sun Feb 5 00:00:07 CST 2017] The new-authz request is ok.

This makes it IMPOSSIBLE to generate a certiificate.
screen shot 2017-02-05 at 7 47 41 am

Also, it is unclear what is supposed to go in the secret field of the validation request. The whole key file, or just the secret or what.

screen shot 2017-02-05 at 7 51 24 am

net/haproxy: syslog "local" file socket feature

Adding the following to the syslog plugin in haproxy.inc will allow local logging without privileges:

'local' => '/var/haproxychroot/var/run/log'

Not sure how much needs to be changed on the GUI side.

Note that this core feature won't make it into 16.1.16.

security/acme-client : lost GUI

Hi guy,

i've just installed the plugin for let's encrypt yesterday (following this #66). The creation of the certificate was good when i check log. But when i go in settings -> administration -> add let's ecncrypt as certificate -> system default

I've lost the GUI, and impossible to recover it through WAN or even throught LAN...

How i can resolv that ? Did you have any idea about that ? I've not find any information in logs

security/acme-client missing intermediate certificate from installed certificate

Hello,

I've successfully installed a LE certificate using the opnsense plugin.
It seems to work, but some clients cannot validate it.

From different SSL checking sites, it seems that the certificate chain is incomplete:
https://www.ssllabs.com/ssltest/analyze.html?d=home.o2r.fr
(same here: https://cryptoreport.websecurity.symantec.com/checker/ and here: https://www.digicert.com/help/ ).

Can you add all the required certs to the full chain ?

Thanks,

Quentin

security/tinc: Problems with the field-descriptions in tinc

@AdSchellevis punch me if its just me, or my poor knowledge about tinc. I tried to read the docs and map what i seen there against what the forms ask for

Network:

  1. Network: his machines internal address to use and network mask for the whole network
    What does that mean - do you expect a address or a network? What does this field mean in general

  2. Subnet: This machines part of the network
    What part - i am not able to get

Host:

  1. hostname: The hostname for the selected machine in the network
    What does "selected machine" means?

  2. ext address/port: "this machine"
    Any reason why i would re-enter this information since they are already part of the network?

  3. subnet: This machines part of the network
    Same as in network, what does "This machine" and "of the network" means.

  4. public key:
    since the Network is selected above, why do i need to reenter this here?


Do not get me wrong on this, its for sure that i do not get the terminolgy right and you are so deep into this topic that its crystal clear for you.

But maybe we can get this done for the general purpose user and use more descriptive words?

Thank you!

Add sslh as a service

It would be nice to have sslh (http://www.rutschle.net/tech/sslh.shtml) as a service, or even as an option for a port forward rule. It's great to forward for example wan:443 to a ssh server, https server, openvpn server and something else (RDP for example)

Ofcourse you can use it on many ports, so having the option to configure multiple instances would be a must. (Hench the suggestion to have it under port forward as an option, it could then just spawn copies for each rule like you would with a proxy program)

Feature: DHCP server able to handle non-interface configured subnets

It would be very nice to be able to use a pair of OPNsense boxes for HA DHCP for setups where DHCP relay is being used and the OPNsense setup is functioning more like a DHCP server appliance than a full firewall, i.e. there is only one configured interface on the OPN side but we would require multiple networks served via the DHCP server.

I am not awaare of any open source or indeed low cost commercial products that provides a nice, simple GUI for DHCPD and HA configuration like we have in OPNsense, but obviously having to have the DHCP server with a presence in every subnet is not idea, nor often desirable for large networks.

security/tinc: Adding tinc interface as Gateway

Hi,

If you want to reach networks behind OPNSense, which are not part of the TINC-Subnet, you have to create routing rules.
But it's not possible, because you cant't choose the tinc0 as GW Interface. The tinc0 interface is not shown in the GUI (except on the firewall site)

Greetings
Tobias

network card tweak plugin

Some cards have best practices for sysctl tweaks.... a plugin should collect and enforce them automatically.

haproxy default certificate if SNI is not provided

by haproxy plugin exist possibility to use multiple certificates by ssl offloading and this also works without any issues
what i am missing is possibility to choose default certificate if SNI is not provided
by default is used first created (oldest) certificate...

HAproxy unknown keyword "inactive"

When using modes like "disabled" or "inactive" in server configuration, the following warning occurs:

unknown keyword 'inactive'. Registered keywords :
[ ALL] id <arg>
[ SSL] ca-file <arg>
[ SSL] check-ssl
[ SSL] ciphers <arg>
[ SSL] crl-file <arg>
[ SSL] crt <arg>
[ SSL] force-sslv3
[ SSL] force-tlsv10
[ SSL] force-tlsv11
[ SSL] force-tlsv12
[ SSL] no-ssl-reuse
[ SSL] no-sslv3
[ SSL] no-tlsv10
[ SSL] no-tlsv11
[ SSL] no-tlsv12
[ SSL] no-tls-tickets
[ SSL] send-proxy-v2-ssl
[ SSL] send-proxy-v2-ssl-cn
[ SSL] sni <arg>
[ SSL] ssl
[ SSL] verify <arg>
[ SSL] verifyhost <arg>
[ALERT] 211/195229 (47201) : Error(s) found in configuration file : /usr/local/etc/haproxy.conf
[ALERT] 211/195229 (47201) : Fatal errors found in configuration.

However, HAproxy daemon boots up just as normal ignoring that warning.

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.