tomas-m / linux-live Goto Github PK
View Code? Open in Web Editor NEWLinux Live Kit
Home Page: http://www.linux-live.org/
Linux Live Kit
Home Page: http://www.linux-live.org/
Linux Live Kit ============== Use this set of scripts to turn your existing preinstalled Linux distribution into a Live Kit (formely known as Live CD). Make sure to extract and use it on a posix-compatible filesystem, since it creates some (sym)links and such. Note: * Store Linux Live kit in a directory which is not going to be included in your live distro, else it would be copied to it. Best practice is to make a directory such as /a and put these scripts there. Be warned, if you put it to /tmp, some distros may erase it on reboot. * Before you start building your Kit, edit the file ./config Most importantly change the LIVEKITNAME variable. * Make sure your kernel is in /vmlinuz or change the path in ./config Your kernel must support squashfs. Your kernel must also support either aufs or overlayfs or both. AUFS is recommended for more flexibility, but if your distro does not support it, overlayfs will work too. * You may also wish to replace boot graphics in ./bootfiles/bootlogo.png (one options is to modify and run the ./tools/bootlogo.update script) and reorganize isolinux.cfg to fit your needs (when editing the file, keep all paths in /boot/, it will be rellocated during LiveKit creation) * Linux Live Kit comes with precompiled static binaries in ./initramfs directory. Those may be outdated but will work. You may replace them by your own statically linked binaries, if you know how to compile them. * If you plan to boot your Live Kit from CD, you need to recompile syslinux.bin else it won't be able to boot your Live Kit from directory LIVEKITNAME. There is a script prepared for you which will handle all of that. Simply go to directory ./tools/ and run isolinux.bin.update ... it will update ./bootfiles/isolinux.bin automatically by downloading isolinux sources, patching them using your actual LIVEKITNAME and recompiling. This step is not needed if you plan to boot from USB only. * If you plan to boot your Live Kit from USB device, you may wish to add the following boot parameter to the end of APPEND section in syslinux.cfg: perch This parameter activates persistent changes * If you have tmpfs mounted on /tmp during building your Live Kit ISO, make sure you have enough RAM since LiveKit will store lots of data in /tmp. If you are low on RAM, make sure /tmp is a regular on-disk directory. * When done, run the ./build script to create your Live Kit - it will create ISO and TAR files for you in /tmp - make sure you have enough free space in /tmp to handle it * If you want to use the Live Kit on a USB you have to either - use Windows to execute the bootinst.bat file in the $NAME/boot folder - or use Linux to execute the shellscript bootinst.sh in the $NAME/boot folder. * You will need the following packages to be installed: - squashfs-tools - genisoimage or mkisofs - zip Author: Tomas M. <http://www.linux-live.org>
I would like to see raspberry pi support based debian armhf arch.
Hello Tomas!
Im trying to install xlunch but im getting this error:
gcc xlunch.c -o xlunch -lImlib2 -lX11 -O2 -s
xlunch.c:13:22: fatal error: X11/Xlib.h: file not found
#include <X11/Xlib.h>
^
compilation terminated.
Makefile:40: recipe for target 'xlunch' failed
make: *** [xlunch] Error 1
Im using this script here:
https://github.com/Tomas-M/linux-live/blob/master/Slax/debian/modules/03-desktop/build
Some foruns says to install libx11-dev, but doesnt fix.
Do you have any idea to fix this?
Best regards
if i start the live build linux distro...
Problem:
...fatal errror occured could not locate linux data
it didnt work ...
...where they located ?
root@slax:~# dpkg-reconfigure locales
Generating locales (this might take a while)...
en_US.UTF-8...cannot open locale definition file `en_US': No such file or directory
done
pt_BR.UTF-8...cannot open locale definition file `pt_BR': No such file or directory
done
Generation complete.
*** update-locale: Error: invalid locale settings: LANG=pt_BR.UTF-8
No effect in Fluxbox or Chromium.
There is a problem that some users mount their USB sticks with showexec parameter, which makes pxelinux.x32/64 unusable, since only exe file can be executed. This is madness, indeed. But we can fix it by copying the appropriate pxelinux binary to an .exe
Reminder: fix this myself
root@wsx:/tmp# ./gen_linux_iso.sh
I: -input-charset not specified, using utf-8 (detected in locale settings)
genisoimage 1.1.11 (Linux)
Scanning .
Scanning ./linux
File ./linux/01-core.sb is larger than 4GiB-1.
-allow-limited-size was not specified. There is no way do represent this file size. Aborting.
How to specify the file size?
With my understanding there is no way to add entries to fstab
since it is re-written every time the system boots.
Would it be possible to add some way of facillitating this
for intstance adding something similar to rc.local that is if a file /etc/fstab.local exist
add the lines to fstab at startup
at the end of fstab_create add
[ -e "$1/etc/fstab.local" ] && cat "$1/etc/fstab.local" >> $FSTAB
Why do you feel the need to explicitly write fstab on each boot?
best regards
suedi
Currently '/boot' only have dos/win32 flavors of syslinux, making it cumbersome to install slax on any device from slax itself.
Edit: This obviously applies to all distros created and not only slax.
seems that build process requires filesystem with symlinks support
imho if that requirement can't be lifted, it should be mentioned in installation instructions that you should unpack the tarball into filesystem with symlinks support
one filesystem that lacks symlinks: is virtualbox shared folders, filesystem type: vboxsf
# ./build
Changing current directory to /root/linux-live
Building intramfs image...
ln: failed to create hard link './busybox' => 'busybox-i486': Operation not permitted
ln: failed to create hard link './mount.ntfs-3g' => 'mount.ntfs-3g-i486': Operation not permitted
ln: failed to create hard link './mount.dynfilefs' => 'mount.dynfilefs-i486': Operation not permitted
ln: failed to create hard link './eject' => 'eject-i486': Operation not permitted
cp: cannot stat 'static/busybox': No such file or directory
cp: cannot stat 'static/mount.dynfilefs': No such file or directory
cp: cannot stat 'static/mount.ntfs-3g': No such file or directory
cp: cannot stat 'static/eject': No such file or directory
chmod: cannot access '/tmp/pld-initramfs-1659/bin/busybox': No such file or directory
chmod: cannot access '/tmp/pld-initramfs-1659/bin/mount.*': No such file or directory
chmod: cannot access '/tmp/pld-initramfs-1659/bin/eject': No such file or directory
./initramfs_create: line 49: /tmp/pld-initramfs-1659/bin/busybox: No such file or directory
Parallel mksquashfs: Using 1 processor
When an USB drive is plugged in, nothing happens.
Old Slax auto-updated fstab through a script which was called from udev rules. Lets try this for new Slax too. When user plugs in a device, it should also open pcmanfm file manager. Alternatively, find a way to do it using systemd.
Thank you for this set of scripts. I've propley setup the config file to point to proper location of files. But I seem to run into an error during an initial stage, which I believe to be very important. Here is the output in my terminal
Changing current directory to /home/bosworth/Storage/linux-live
Building intramfs image...
depmod: ERROR: could not open directory /tmp/arch-initramfs-4181/lib/modules/4.15.14-1-ARCH: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /home/bosworth/Storage/tmp/arch-data-4170/arch/01-core.sb, block size 524288.
The script begins creating the filesystem, yet without initramfs?
I don't understand what the ERROR means.
Does the script create a folder arch-initramfs-4181 within /tmp?
Do I need to create the folder?
`usr/lib/modules/' is the location of my kernel?
here's my config file
LIVEKITNAME="arch"
VMLINUX=/boot/vmlinux-linux
KERNEL=$(uname -r)
MKMOD="bin etc home lib lib64 opt root sbin srv usr var
NETWORK=false
LIVEKITDATA=/home/bosworth/Storage/tmp/$LIVEKITNAME-data-$$
BEXT=sb
LMK="usr/lib/modules/$KERNEL
mb
Hi,
I already create a live CD iso file of installed CentOS 7.3 and would like to boot this live OS via PXE, but could not found suitable initrd and vmlinuz file, could anyone help on how to achieve this, thanks.
Hi guys, I just want to clarify the last step, what do you mean by _ run bootinst.sh from the boot subdirectory _ ? Can you show me a few more steps to accomplish this. Thanks and sorry for creating a new issue just for this, I couldn't find any info on google or the closed/open issues on the repo.
Hi,
I am trying to make a Centos7 package with no luck until now:
Booting ... not so much, menu appears with 2 options but is not moving forward ... any ideas ?
I did the edits inside config and syslinux.cfg for the kernel names.
Julius
Actually I am not so familiar with debian because I use arch linux. I also own a derivative distro MagpieOS. I used your script 2 years ago when slax is based on slackware and script also works fine on any distro. But now it's based on debian and I am having issue in Arch LInux.
Hi Mate @Tomas-M, firstly thank you fro the nice tools.
Wondering, I have created a group "docker" and after executing the linux live script, the group was not persisted over to the .sb Do you have any hints to troubleshoot this or is this an expected behavior?
in linux-live 6.x versions, it was possible to use ROOT
directory which is used for building linux live image. i would like that support added back, that way i can build minimal livecd customized for my need (i.e i have packages i want on livecd in temp dir)
also, it would be nice to have support for executing extra scripts when all files have been copied to temp root, i.e to do additional cleanup (in my case i want to shrink /var/lib/rpm contents, which i do not want to do on real /var/lib/rpm)
ps: is there any post on why the versioning schema was changed? i.e 6.x -> 1.8 seems like "downgrade"
Standard overlay file system for Linux since kernel 3.18
Hi Tomas,
I successfully built a custom minimal slackware ISO livecd using your great tool. However, when booting a virtualbox VM using that ISO, I get a syslinux error : "Failed to load ldlinux.c32". So I created a bootable USB stick using the same generated files and I can boot my laptop using the USB, no syslinux error. After googling around, I found this issue: https://bbs.archlinux.org/viewtopic.php?pid=1645617#p1645617
However, converting the slackware I used to build the livecd to 32 bits filesystem does not solved the syslinux issue...
I use linux live kit 2.1 (https://github.com/Tomas-M/linux-live/archive/v2.1.tar.gz)
Any idea ?
Best regards,
Denis.
Hi,
i just created a iso image of a custom install (using the github repo) - the created iso is not bootable
Isolinux claims Error: No configuration file found
etc
Even if firmware is present, wicd for some reason does not see the wifi device.
I should examine the config files to see if I can add the wifi device manually. From what I've tested, if the device is added through the wicd-gtk application, it starts to work and wifi can connect. So lets try to make this happen automatically.
I am using the latest code from GitHub and created a usb following the instructions and when the usb it put into the target machine it responds with failed to use /.../boot/vesamenu.c32. It looks like it found it ok, just couldn't use it. I have confirmed that the file is there, and that the version is 4.06 (as a post on another site said to use). That version is in the latest source code. At a loss for troubleshooting this issue, any thoughts?
Did you remove the Exclude fstab section of the Config file by mistake or has something changed?
One of the problems with the older revisions of refracta tools is it kept the original fstab in the created ISO image and it would cause drive path conflicts between the HDD and USB that caused cross talk between the drives?
So i was concerned with this issue for Linux-Live if it's no longer excluded.
Thanks
Hi,
I'm trying to build a live image based on Ubuntu Server 16.04
. My configuration file looks like this:
#!/bin/bash
# This is a config file for Linux Live Kit build script.
# You shouldn't need to change anything expect LIVEKITNAME
# Live Kit Name. Defaults to 'mylinux';
# For example, Slax changes it to 'slax'
# Must not contain any spaces.
# If you change it, you must run ./tools/isolinux.bin.update script
# in order to update isolinux.bin for CD booting.
LIVEKITNAME="loopedge-live"
# Kernel version. Change it to "3.2.28" for example, if you are building
# Live Kit with a different kernel than the one you are actually running
KERNEL=$(uname -r)
# Kernel file, will be copied to your Live Kit
VMLINUZ="/boot/vmlinuz-$KERNEL"
# List of directories which will be modularized
# No subdirectories are allowed, no slashes,
# so You can't use /var/tmp here for example
# Exclude directories like proc sys tmp
MKMOD="bin etc home lib lib64 opt root sbin srv usr var"
# List of files and directories you'd like to exclude from your Live Kit
EXCLUDE="/etc/fstab /etc/mtab"
# Temporary directory to store livekit filesystem
LIVEKITDATA=/tmp/$LIVEKITNAME-data-$$
# Bundle extension, for example 'sb' for .sb extension
BEXT=sb
# Directory with kernel .ko modules, can be different in some distros
LMK="lib/modules/$KERNEL"
but modules
directory is empty after I build the image. This is the content of the modules directory in the image (in mu case it is /lib/modules/4.4.0-64-generic
):
build/
initrd/
kernel/
kernel/arch/...
kernel/crypto/...
kernel/drivers/...
kernel/fs/...
kernel/kernel/...
kernel/lib/...
kernel/mm/...
kernel/net/...
kernel/sound/...
kernel/ubuntu/...
kernel/virt/...
kernel/zfs/...
modules.alias
modules.alias.bin
modules.builtin
modules.builtin.bin
modules.dep
modules.dep.bin
modules.devname
modules.order
modules.softdep
modules.symbols
modules.symbols.bin
updates/
vdso/
Am I doing it wrong?
guys, i am totally new to this stuff so i dont know what exactly i should even do to build a custom linux os
so please help me
Hi Tomas-M,
How about replacing AUFS with overlayfs? I think that overlayfs is better,simpler ……than AUFS.
Hi,
I've used your kit to create my own live image using VirtualBox.
At first, I've created a new virtual machine, then I've installed ArchLinux using the Arch-Anywhere tool. Result was a fully functional installation of Archlinux with Plasma KDE Desktop.
After this, I've downloaded your tool (git version) and I've tried to create my distro. After few try I got an ISO of 3.5 Gbyte.
So, I've created another Virtual Machine with cdrom pointed to that linux-x86_64.iso.
At boot, I've see a yellow screen with a Penguin on the left and the classical grub menu. So, I've select ed "Linux" and the boot has started.
After 1-2 seconds, it seems to search something into "linux", but after 30 secs, it stops and the following error got displayed (see the attached image).
I've mounted ISO file. I've found "linux" directory and "readme.txt" file.
In linux dir, I've found
totale 3636104
-rw-r--r-- 1 root root 3723362304 15 dic 19.49 01-core.sb
drwxr-xr-x 2 root root 4096 15 dic 19.34 boot
drwxr-xr-x 2 root root 2048 15 dic 19.34 changes
drwxr-xr-x 2 root root 2048 15 dic 19.34 modules
./boot:
totale 5655
-rwxr-xr-x 1 root root 1179 15 dic 19.34 bootinst.bat
-rwxr-xr-x 1 root root 1278 15 dic 19.34 bootinst.sh
-rw-r--r-- 1 root root 7336 15 dic 19.34 bootlogo.png
-rwxr-xr-x 1 root root 221776 15 dic 19.34 extlinux.exe
-rw-r--r-- 1 root root 32 15 dic 19.34 initrfs.img
-rw-r--r-- 1 root root 40960 15 dic 19.34 isolinux.bin
-r--r--r-- 1 root root 2048 15 dic 19.52 isolinux.boot
-rw-r--r-- 1 root root 116552 15 dic 19.34 ldlinux.c32
-rw-r--r-- 1 root root 181944 15 dic 19.34 libcom32.c32
-rw-r--r-- 1 root root 23628 15 dic 19.34 libutil.c32
-rw-r--r-- 1 root root 440 15 dic 19.34 mbr.bin
-rw-r--r-- 1 root root 46909 15 dic 19.34 pxelinux.0
-rw-r--r-- 1 root root 435 15 dic 19.34 syslinux.cfg
-rw-r--r-- 1 root root 126511 15 dic 19.34 syslinux.com
-rw-r--r-- 1 root root 243712 15 dic 19.34 syslinux.exe
-rw-r--r-- 1 root root 26684 15 dic 19.34 vesamenu.c32
-rw-r--r-- 1 root root 4744976 15 dic 19.34 vmlinuz-linux
./changes:
totale 0
What is the problem?
Thank you for attention.
Regards.
or Dynfilefs needs fsck.
After some crash on my box, Slax 7 stalls. By rebooting it several times and finally by unchecking "Persistent Changes" option I got it to boot fine.
In cleanly booted Slax I have checked and found the file of interest, it's ~350 MiB in size:
# ls -Alh /mnt/live/memory/data/slax/changes/changes.dat
-rwxr-xr-x 1 root root 349M Apr 9 04:14 /mnt/live/memory/data/slax/changes/changes.dat
I tried to mount it:
# /mnt/live/bin/mount.dynfilefs /mnt/live/memory/data/slax/changes/changes.dat 350 /media/
Seems fine for now:
# ls -Al /media
total 0
-r--r--r-- 1 root root 367001599 Jan 1 1970 loop.fs
(from the 2nd terminal)
# iostat 1
avg-cpu: %user %nice %system %iowait %steal %idle
0.50 0.00 0.50 0.00 0.00 99.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
sdf 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
1.50 0.00 0.50 0.00 0.00 98.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
sdf 0.00 0.00 0.00 0 0
But a soon as I try to access the file, my box gets loaded:
# file /media/loop.fs
(doesn't return; switching to the 2nd terminal)
# iostat 1
avg-cpu: %user %nice %system %iowait %steal %idle
11.56 0.00 1.01 0.00 0.00 87.44
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
sdf 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
26.50 0.00 22.00 28.50 0.00 23.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
sdf 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
27.27 0.00 27.78 0.00 0.00 44.95
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
sdf 0.00 0.00 0.00 0 0
(repeating with same values forever)
And the culprit is:
# ps -e -o pcpu,pmem,args --sort=pcpu | tail -n 5
0.7 1.1 kdeinit4: konsole [kdeinit]
1.2 1.3 /usr/bin/X :0 vt7 -auth /var/run/xauth/A:0-ZKJqTa
4.9 23.3 /usr/bin/firefox -P default
5.6 1.8 /usr/lib/firefox-19.0.2/plugin-container /usr/lib/mozilla/plugins/libflashplayer.so -greomni /usr/lib/firefox-19.0.2/omni.ja 2402 plugin
66.0 0.0 /mnt/live/bin/mount.dynfilefs /mnt/live/memory/data/slax/changes/changes.dat 350 /media/
Cancelling my user-cmd isn't possible from console:
# file /media/loop.fs
^^C^^^C^_
So I need to kill it along with mount.dynfilefs.
1, to be able to extract my data from the changes.dat .
1a, to be able to read the corrupt /media/loop.fs .
2, to have a tool to deal with that in future.
2a, we probably need fsck.dynfilefs .
Hello, @Tomas-M! I want to customize my Slax. I need to learn to create bundles. Where I can read about it?
I want auto adjusts sush as:
dpkg-reconfigure tzdata
setxkbmap br abnt2
passwd
when booting...I also want to install packages by using apt
:
xtrlock
And extensions on Internet browser.
And security private issues.
Thanks.
Hi, thanks for the excellent scripts, it worked very well for creation of the bootable USB, however I am unsure how to install my custom build to a host workstation after booting from the USB. Am I missing something? or is this not possible?
Thanks again,
John
can I set custom ouput directory ? since i may run out of space on main partition
hi
in case of systems where /tmp is on tmpfs, especially systemd installs (afaik it's systemd default to have /tmp on tmpfs), building slax would take out ram which it would need for xz instead.
you should use /var/tmp for such puporses, i.e /var/tmp is supposed to be temp dir not on ramfs. there was some blog or documentation too about this topic (i don't even know what to search to reach it :)), but it stated that most cd burning tools have already been changed to use /var/tmp for their temporary isos
also, interestingly, www.linux-live.org suggests to mail you, but i can't find mail address anywhere :D
Hi,
Is it works on CentOS 7 ?
Thanks & Regards
Celso Suzuki
@Tomas-M have you had any success in running this through UEFI/EFI ?
I am attempting to pxe boot an image.
My "pxelinux.cfg/default" settings are:
DEFAULT linux
LABEL linux
KERNEL /memdisk
APPEND iso initrd=linux-x86_64.iso raw
The image boots, but eventually fails with
looking for linux data in /linux
Fatal error occured - could not locate linux data
Using a different iso image it will boot fine.
Is this because the iso created with linux-live is not "isohybrid"?
Is there another way I can boot my custom image?
When you create an ISO with the builder and then boot it
you don't have an internet connection
Hi, it works fine with a custom kernel compiled with aufs and usb-storage built inside but doesn't work with jessie's kernel booting from USB. It stops at "looking for pureos data in /pureos"... any idea? Thanks
rox-filer
or thunar
Looks all okay but no sound! alsamixer shows all unmuted. ALC268 card. I've tried some "options" for the module but no effect.
I thought I had this working but I was mistaken. I now understand it is very hit and miss to boot a linux based iso.
I would like to boot a custom debian build over pxe but it does not have to be an iso.
I can build the image using linux-live and install it to a usb drive and it works fine.
I would like to boot this same image from a pxe server.
I see in discussions about pxe booting slax it says you need a PXEFILELIST to reference the .sb file.
I am hoping this same method will work with a linux-live built image. If so, could you provide an example of what the PXEFILELIST would look like.
https://insights.ubuntu.com/2017/07/10/netplan-by-default-in-17-10
http://cdimage.ubuntu.com/daily-live/current/
Just installed the latest daily build and everything worked perfectly but when i made an ISO with Linux_live i had no network connection , i don't know if it's anything to do with the above News that they have added netplan?
Anybody else have the same problem and does anyone have a work around?
As 17.10 is still Alpha testing it's pointless Tomas adding a fix to the script as they might change things again by the time it's released.
Thanks
boot loader generated iso but iso cant boot.
ldlinux.c32 not found.
Tomas has been active the last few days adding and removing code , anyone know what he is up too?
Is it just general fixes or are there new changes about to happen?
Thanks
I think should add -e $EXCLUDE
option after mksquashfs.
I am attempting to make a usb bootable copy of a minimal debian install.
I am installing schroot, squashfs-tools, zip and genisoimage
Everything appears to go fine, I run the build script, it completes, then I make the iso and copy it to the usb drive with
dd if=/tmp/linux-x86.iso of=/dev/fdc
Booting from the usb disk always results in "selected boot device failed"
I have tried this with both a debian 8.10 and 9.4 with the same results.
I tested the dd method of writing an iso file with the debian iso and it booted fine.
I also tried writing the iso file with the windows isotousb program but it fails with a error message.
Can you confirm the v2.1 version is working ok?
Appreciate any other suggestions as to what I am doing wrong.
The documentation on the home page says:
To make bootable USB, unpack the generated TAR archive (also from /tmp) to your USB device and run bootinst.sh from the boot subdirectory
I have ran ./build
and it runs successfully. It created the linux-x86_64.iso
, but I can't see any .tar
archive. I require this for booting from USB.
I tried to dd
the iso
to the USB, just to test if it works, but it didn't.
Are there any configuration options I need to set to generate the .tar.
archive?
Thanks
This is a Slax 9 issue but I don't know where I could to post it.
slax downloads modules into "slax/modules" even when from= specifies another folder. to resolve this, i added this line:
if [ ! "$1/$FROM" == "$1/$LIVEKITNAME" ]; then
mount --bind $1/$FROM $1/$LIVEKITNAME
fi
right after (in function find_data_try):
# search for bundles in the mounted directory
if [ "$(find "$1/$FROM" -maxdepth 1 -name "*.$BEXT" 2>/dev/null)" != "" ]; then
# we found at least one bundle/module here
mount -o remount,rw "$DEVICE" "$1" 2>/dev/null
so now, any slax module that is downloaded will reside in the "modules" in the folder specified by from=.
** this will hide any existing "slax" folder in that location.
another solution may be to save the mount point of the from= folder and have the slax script read that in get_bundle_storage_dir().
Here you can find a header to put in the batch file to request Admin permissions (required to update the usb key)
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.